图说MicroEmacs Jasspa版本的亮点功能(1)
如前面那篇《介绍一下MicroEmacs》所述,Jasspa是MicroEmacs的一个分支版本,也是最有影响力功能特性最多的一个。
Jasspa主页:http://www.jasspa.com
作者提供了Windows/DOS/Cygwin, Sun, Linux, AIX, Mac, OpenBSD/FreeBSD等多种平台的二进制包供下载。
File Browser和Shell
跟GNU Emacs一样,Jasspa可以在里面运行shell交互环境(在Windows上它跟Cygwin结合得也很好,可以直接用M-x cygwin来启动cygwin shell)。
Toolbar
Jasspa允许给上下左右添加toolbar(其实类似“现代编辑器”里面的ToolWindow),有win和page两种方式(也就是平铺还是叠加,后者类似“现代界面”里面的两个工具窗口停放到不同的标签上),提供的功能有文件浏览器、Item List(函数/变量列表)、Buffer List、书签列表等等,用S-F11可以隐藏全部toolbar。跟GNU Emacs不一样的是,toolbar跟buffer不会混淆,不会出现在GNU Emacs里面那种将文件在一个speedbar窗口中打开的问题。
对话框
GNU Emacs的用户都倾向于不使用菜单、工具栏和对话框,因为这都不如一两次按键那么有效率,很多时候还得借助于鼠标,效率就更低了。但它们也有一个优点:会让新手很容易探索到某个分类里大概有一些什么功能,比如你知道GNU Emacs里面缺省对于较长的行有几种显示方法?你看一下菜单Options->Line Wrapping in this Buffer就知道有Wrap at Window Edge、Truncate Long Lines和Visual Line Mode三种(GNU Emacs里面比较赞的是你可以用C-h k然后点击一个菜单项让它告诉你究竟是调用了什么elisp函数,这样你下次可以用M-x的方式或者绑定按键的方式来使用这个功能了)。
Jasspa里面工具栏(如上所述)、菜单和对话框都用得比较多,你在这里可以方便地将jasspa设置为client-server模式,挑选theme, 加载/卸载某个mode,配置鼠标按键的行为等等。
这些对话框、菜单和工具栏都是用宏语言写出来的,下面也是调用其它的宏,所以你也可以用宏来操作。这就叫简单、效率两不误。
Firefox上的窗口分割扩展(以及Vimperator/Keysnail插件脚本)
如果你用过Vim,就知道我们可以用:split 或者 :vsplit 把窗口分割成两个,每个窗口编辑/查看不同的文件,继续使用:split / :vsplit 可以继续分割。有时候需要对照着看一些内容的时候,这样的风格很方便(考虑到现在很多程序都抛弃了以前的MDI风格,而是采用了多标签页的风格,要参照一下另外一个标签页当中的内容,来回切换的话相当麻烦)。
Emacs 也有这样的功能,分别是用C-x 2和C-x 3来分割。
其实Firefox上也有一个扩展可以实现这样的功能:Split Browser (后来改名叫做Fox Splitter了,不过改名后好像没发过新版本),虽然最新的版本是20091105,但在新版本的Firefox上面仍然可以安装(该扩展标明是适用于3.0 - 3.7a1。Firefox 4上面我也没有测试过,但有另外一个叫做Tile Tabs的类似扩展声明是支持fx4的)。
如果你在用Keysnail,那么可以这部分代码拷贝到你的~/.keysnail.js里面去,然后你就可以象Emacs 那样来操作分割窗口了:(注意,按Emacs/Vim的术语,这里每个分割出来的部分都叫做window,跟Firefox 原本的Window不要混淆了——那个东西在Emacs里面叫做frame, 在Vim中好像没有对应的术语。而Emacs中又没有标签页的概念):
- C-x 0 关闭当前窗口(delete-window)
- C-x 1 关闭其它窗口(delete-other-window),即取消当前标签页内所有分割
- C-x 2 纵向分割(split-window-vertically)
- C-x 3 横向分割(split-window-horizontally)
- C-x o 激活下一个窗口(other-window)
- C-x k 关闭当前窗口或者标签页
如果你在用Vimperator,那么插件在这里[splitBrowser.js] ,下载后放到~/vimperator/plugin/目录。除了支持:split/:vsplit,它也支持<C-w><C-w>, <C-w><C-v>等快捷键。(Pentadactyl上没测试过,考虑到现在它跟Vimperator越来越不兼容,可能需要对脚本修改一下,这既然是爱折腾的vim粉丝,应该难不倒诸位:-)
另: FoxSpliter的源代码在这里: https://github.com/piroor/foxsplitter 有兴趣的可以下载一下最新的代码
Technorati 标签: firefox, emacs, vim, geek
Debian 6.0 squeeze发布啦 (以及几个有意思的东西)
也许你已经通过各大技术新闻网站知道了,Debian 6.0 (squeeze)在2月6号发布了,Debian网站也在同一天换了新面貌。
其实对于我这样的桌面用户(用的是Debian testing)而言,新的稳定版的发布意味着testing冻结期结束,Debian又可以向前冲了: 解冻的第二天,就有451个包上传到了ftp-master等待合入仓库(数据来源) ,而且跨平台的AppInstaller(AppStream?) (中文介绍, Debian News里面的说明),wayland, multiarch, 移除qt3/kde3... 很多计划也都摆上了桌面。
不过我在现在的testing/unstable里面还是没看见iceweasel-3.6,刚又查了一下,它刚出现在experimental里 :-(
如果只是跟风说一下新版本发布了,也没有必要俺来写一篇博文,所以还是给大家添加一点有用/有趣的内容吧:
两个有意思的玩意儿: linuxlogo, cowsay
linuxlogo: Color ANSI System Logo
A Color ANSI Logo with some system information that can be displayed at system boot time or, with some local configuration, at the login prompt. Four different Logos are available:
* Debian Swirl(default) * Debian Banner * Tux Classic and Banner
The Classic and Banner Logos are based on Larry Ewing's Penguin. Monochrome ASCII versions of all the logos are included.
我修改了一下Debian提供的/etc/init.d/linuxlogo,直接用linuxlogo的输出作为了/etc/issue.net (ANSI彩色版本)和/etc/issue (无ANSI控制字符版本)的头部。
cowsay: A configurable talking cow
Cowsay (or cowthink) will turn text into happy ASCII cows, with speech (or thought) balloons. If you don't like cows, ASCII art is available to replace it with some other creatures (Tux, the BSD daemon, dragons, and a plethora of animals, from a turkey to an elephant in a snake).
homepage: http://www.nog.net/~tony/warez/cowsay.shtml
这次安装LinuxMint以后在登录后就会看到一个牛或者企鹅吐出一段随机的话,对于这些小玩意儿我有些兴趣,于是在/etc/profile等文件里面找了半天才知道是cowsay的效果:LinuxMint封装了一个cowsay+fortune的脚本,叫做mint-fortune,在mintsystem包里面提供。其实自己想要类似的也容易(不过LinuxMint还简单地做了一下随机显示tux/moose还是别的什么,具体如何控制可自己看manpage):
$ cowsay `fortune`
对于Debian系统管理员,不妨安装一个fortunes-debian-hints, 在~/.profile里面添加如下一行:
/usr/games/fortuen debian-hints | /usr/games/cowthink
这样每次登录都会有一条关于Debian系统管理的Tips了。