从Ubuntu转向Mac OS

感谢jgg和hdd,我的macbook pro终于到手了。

刚开始用的第一天,十分之不适应。我看到键盘下面的一排Fn,Control,Option,Command就晕了。Command跟PC键盘上的Control是什么关系?为什么Terminal里面的date命令接受的参数和Linux里面的不一样?......

经过几天的适应,现在终于是用顺手了。

Ubuntu里的习惯,快速切换

先说说在Ubuntu里面的使用习惯吧。搞后台开发的人,整天和命令行,vim打交道,一天到晚就是各种终端来回切,在vim里各种文件来回切。

工作的时候为了保证思维的连贯性,手不想离开键盘,所以对于一些频繁的切换操作都希望能用简单的快捷键来做到。

gnome的快捷键

我用的gnome,这些快捷键大部分都在gconf-editor -> apps -> metacity 里面设置,

  • Capslock重定义为Control,用左右小拇指按住contorl,用其他手指去按azxc之类的字母不觉得别扭吗?换成Capslock就要舒服很多。
  • 窗口的最大化和还原 <super> + <up>
  • 快速切换到Terminal, <super> + C

    • 这个快捷键实际上是调用的较为复杂的一个脚本,用到了wmctrl
    • 如果Terminal存在,切换到Terminal
    • 如果Terminal不存在,那么新启动一个Terminal
    • 如果有多个Terminal,那么连续按 <super> + C时,会在多个终端间循环切换
  • 快速切换到Firefox, <super> + F,这个快捷键的逻辑和上面的Terminal一样

screen中的快捷键

在Terminal中,我一般都会用screen来开多个窗口,而不是使用Terminal本身自带的标签。其实如果是单机环境,Terminal的自带标签很好用,但是一旦要连接到远程服务器,在每个Terminal标签中,都建一个连接到远端server,太过麻烦,而且一旦网络中断,这些窗口信息都丢失了,而screen就是神器了。

screen里常用的操作就是:

  • 新建窗口,默认快捷键 Ctrl+A Ctrl+C
  • 切换窗口0-9,Ctrl+A [0-9]

要连续按两次显然太麻烦,而且Ctrl+A也很不顺手,所以我修改了screen配置,加了下面的快捷键

  • 新建窗口, F12
  • 切换窗口0-9,Alt + [0-9]
  • 切换到左边的窗口,Ctrl + <left>
  • 切换到右边的窗口,Ctrl + <right>

vim中的快捷键

其实vim的使用完全可以单独写一写,这里只列一些与切换相关的操作

  • FuzzyFinder,我把','设定为leader,然后用<leader>f 来触发查找文件的操作
  • 写代码时,经常想打开当前文件所在的目录的另一个文件,我一般会先用vim打开这个文件所在的目录,然后再定位到文件,打开目录的命令是:tabnew %:h,我把F6映射为这个命令
  • vim中我开多个文件一般都是用tab,而不是用split或者buffer的方式,gt和gT分别是切换到右边和左边的标签,我还是嫌麻烦,光标的移动一般都在键盘区操作,左右方向键其实很难用到,所以我把<left>映射为gT,<right>映射为gt,这样左右键在多个文件tab间切换非常快

转向mac

上面提到的就是在ubuntu下面工作的一些习惯,这些习惯一旦被打断,工作起来就很不爽。所以要转向mac,首先要做的就是把上面的那些快捷键都迁移过来。

vim中的快捷键

这个是最简单的,原先的vimrc复制过来一点都不用改直接就好了。

screen的快捷键

这个要改一些配置和按键习惯,Mac键盘上面Option键类似于PC上的Alt键,切换窗口0-9的快捷键可以不用变,但是

  • Lion里面,F1~F12都默认绑定成操作系统相关的很多操作了,像直接按F12就是增加音量,而要表示F12,需要按Fn+F12,
  • Command+左右键和Control+左右键在Mac OS里面都已经被其他功能占用,Command+左右键在Terminal中是指在多个窗口之间切换,Control+左右键则是系统级的快捷键,在多个桌面之间切换。

所以,对于screen里新建窗口和切换左右窗口的操作,我重新绑定为:

  • 新建窗口, Option + =
  • 切换到左边的窗口,Option + <left>
  • 切换到右边的窗口,Option + <right>

窗口快捷键

相比前两类操作,这个想转换过来就复杂一些。

  • Capslock重定义为Control,这个还好,系统的键盘设置里面支持。
  • 窗口的最大化

    Lion里面,窗口除了最大化之外,还有一个全屏的操作(Control + Command + F)。这个特性很好,但是并非所有的程序都支持,像Firefox就不支持。
    而Lion里面居然默认没有统一的最大化快捷键,这让我很不理解。google一番之后终于在这个页面的评论里面找到一个applescript脚本。然后我在FastScripts里面将Option+ <up> 绑定为触发这个最大化/还原的操作。

  • 快速切换到Terminal

    这个功能并非操作系统自身支持,必然是要写程序的。实现这个操作还是费了点时间。经过两个小时的google,我拼凑出了一个applescript脚本,同样在FastScripts里面进行绑定,用Option + C 来触发这个脚本。

New Start

到现在为止,习惯的快捷键基本上都配置好了,也在这几天中初步感受到了applescript, QuickSilver的牛逼之处,相信Mac里面还有很多新的东西等着我去发现。

各种调教,都是为了用起来更爽。

先写到这里,上面提到的一些applescript脚本,以后再发吧。

Comments