Emacs 绑定键盘的技巧。
万无一失的绑定方法
很多人绑定一些比较特殊的键的时候,都搞不清楚在
(global-set-key ... 'my-funtion)
里写些什么。特别是在 xterm 里的时候就更不知所措了。其实有一个万无一失的办法保证你一定写对。这个办法就是:
- M-x global-set-key RET 交互式的绑定你的键。
- C-x Esc Esc 调出上一条“复杂命令”。
好了,你现在就能在 minibuffer 里看到你应该写在 .emacs 的东西了。
如果你还是失败了……
如果你在第1步的时候发现 Emacs 根本对你的按键没有反应,那么应该怀疑是你的窗口管理器拦截了这个按键。比如,我的 FVWM 设置把 C-f3 设定成了打开一个 FvwmCommand, 所以Emacs 接收不到这个按键。如果我要绑定一个函数到 C-f3, 我必须让 FVWM 放过 C-f3。
绑定新的前缀键
其实上面的办法只能让你绑定一个已有的前缀。你有可能想绑定一个 save-buffer 到 "C-c C-w C-b a"。上面的办法就不灵了。我们必须使用另外的办法:
(global-set-key (kbd "C-c C-w C-b a") 'save-buffer)
一点解释
上面的那个 "C-c C-w C-b a" 是自动把 "C-c C-w", "C-c C-w C-b" 都定义成了一个 prefix-command. 你可以这样看到它们:
- C-h C-b 显示绑定
- C-x o 切换到显示绑定的窗口
- C-x C-q 消除这个窗口的只读