Blog

更换终端程序

在买了 MacBook 之后,我的终端程序一直用的是系统自带的 Terminal.app。总体感觉来说还不错,虽然默认的配置看起来丑了些,但把风格切换成 Pro 的,字体弄成平滑的,用起来也算舒心了。

其实丑不丑倒是没关系,这方面我不是很挑剔,但最让我不习惯的是无法使用 Bash 中的快捷键。比方说,向左移动一个单词,过去我在 Linux 下可以按 Alt+b 来完成,这在命令行中特别有用。有时要调整某个参数,没有这个快捷键,用方向键或 Ctrl+b 来一个字符一个字符来移动的,就特别麻烦。我观察了一阵子,发现最主要的问题在于 Terminal.app 是个 Mac 程序,因此很多系统快捷键都需要用 command 键来调用。而 command 左边的 alt 键,则是用于输入一些特殊的符号,比如 ∫(是数学里的积分符号,我不知道能不能正常显式)。所以我在习惯之前一直非常苦恼。

对我来说,终端程序基本上是日常必备的软件。每次重启之后我要首先打开的几个程序中,就有终端程序。很多人觉得命令行难,但是一旦习惯了 UNIX shell 的那种工作方式,就感觉一直离不开了,因为有些程序实在是太赞了。所以我就很怀念过去我自己配置的 fvwm 桌面,我把 Alt+F1 快捷键绑定到“打开一个 urxvt 窗口”。我在启动脚本里面加上了运行 urxvt 的服务进程的指令,所以开机后就会在后台有个进程来先载入 rxvt 的一部分,所以我的快捷键只是打开一个新的窗口,因此速度非常快,基本上是随用随调。另外,我的 Alt+F2 绑定的是运行 gmrun,从里面可以运行任何命令,我一般用它来打开某个程序,就像 Quicksilver 一样用。

所以在 Mac 下,我也希望弄到这个效果。不过一来很少有软件会用到 C-S 架构,二来我对 Mac 本身的快捷键也不熟悉。在 fvwm 里所有的快捷键都是我从头自己设计的,不会有冲突问题;在 Mac 中会不会有冲突问题,发生冲突时以谁为主,我都不清楚,也没有什么时间研究了。所以就一直迟迟没有弄成这个功能,只是在某个 space 里面固定放一个 Terminal.app 窗口,等需要的时候就过去那个 space 就好了。

后来我好像是在课堂上,看到坐在我前面几排中有人一样用 MacBook,他的系统有一种功能,就是把一个终端窗口弄的和屏幕一样宽,高度大概有十公分多一些,所到屏幕的最上方。用的时候,终端窗口会从上方滑下来,用完了之后又滑了上去。我过去在用 fvwm 的前期,曾经也用这种方式做过。启动的时候运行一个 aterm,在屏幕上方缩成一条线。等我鼠标顶到屏幕最上方的时候,aterm 窗口会滑下来。开始的时候我觉得这个功能挺有意思,后来觉得有点添乱,所以在有了新的方法之后,就没有再用这个。我当时觉得这个样子应该会解决一些问题,于是就回家研究,发现了 SIMBL 这个插件,然后需要做一些设定,绑定到一个快捷键上,就完成了这个效果。我印象里好像是绑定到了 command+F2 上,当我按这个快捷键时,Terminal.app 会从上方滑下来,占据几乎整个桌面(除了 Dock 部分),用完了之后,再按一次 command+F2,窗口就回去了。

当时我就一直这么用着,Terminal.app 可以建立多个标签页,因此有多个终端可以同时使用,用起来也够了。可是当我把系统升级到 Snow Leopard 后,好像 SIMBL 不能用了,大概是 32 位和 64 位兼容的问题。那时我每次运行 Terminal.app 之后,Dock 上会出现它的图标,然后过几秒钟之后,图标就没了。当时我搜索过一些网页,好像没有什么解决办法,于是就干脆放弃 Terminal.app,改用我之前就用过的 iTerm。关于这个 iTerm,我是在一些文章上看到的,之前也用过。好像是在过去,Mac 自带的 Terminal.app 功能还不大够的时候,人们会用 iTerm 代替。我试用的时候感觉 iTerm 功能也就那个样子,于是还是用系统自带的终端。这会 Terminal.app 不能运行了,我就用 iTerm 来代替。

iTerm 我用起来也还不错的。我没有对显示效果做任何的调校,因为默认的界面就已经不错了。其中我最喜欢的功能是按 command+return 会把 iTerm 整个全屏,这样在终端上工作就可以不受打扰了,而且终端更宽了之后显式的东西也多,读起来也更方便了。iTerm 同样支持标签页,但它的标签页切换方式不是系统默认的 command+shift+[ 和 command+shift+],而是 command+数字键。这在开始让我很不习惯,我经常按原先的切换标签,得到的确实“嘟嘟”的错误提示音。不过后来习惯了之后,反而觉得这种方法能一下子跳到想去的标签,感觉也不错。而且现在 Google Chrome 也兼容这种切换的方式,我接触这种方式的机会多了,也就更习惯了。想比较而言,还有第三种切换标签页的方法,一直为我所不齿,就是 command+左右方向键,Adium 就是用的这种方法。这种方法最大的问题是,切换标签的时候,右手要从主要的区域挪到方向键区域,很麻烦的,要让我每天都要这样移动,一定会疯掉。后来在一些小的部件升级之后,Terminal.app 可以使用了,不过那时我已经习惯了 iTerm,所以就一直这么用着。

iTerm 还是有一个问题,就是一些细节上的地方还是太过靠近与 Mac,而不是 UNIX。主要就是向左向右移动一个单词的问题。我在按 command+b 的时候出现的是 iTerm 的标签;我在按 option+b 的时候出现的还是积分符号。而我在前几天看了一个视频,让我回到了 Terminal.app 的怀抱。我看的那个视频是教给我们如何在 Terminal.app 中使用 UNIX 那种移动光标的方法,原来就是在设定里面的 keyboard 标签下面,选中 “Use option as meta key”,就可以通过 option+b 之类的快捷键来快速移动光标了。

知道了这一点之后,我又翻了一下 iTerm 的设定,没有找到有相关的设定。于是我立刻决定回到 Terminal.app 的怀抱。之前的 Pro 主题的一些具体参数因为升级系统而丢掉了,二来也确实有了一些审美疲劳,于是就换了一个 Novel 主题,感觉米黄色的底色加上黑色的字符,既明显又不刺眼,十分舒服。

换回 Teriminal.app 之后,我有几点不习惯。首先是现在我经常用 command+数字键 来切换标签,而在 Terminal.app 程序里这个快捷键的作用是切换不同的 Terminal.app 窗口。我一般只开一个窗口,并在那个窗口里开多个标签,所以按这个快捷键时会经常发出“嘟嘟”的提示音。二是我在用 command+tab 切换程序的时候,脑子里想的还是 iTerm 的图标,等半天后才反应过来应该找 Terminal.app 的图标才对。

没有评论

Leave a Reply