我做了 ctrl h b 来查看emacs中的所有绑定。现在我想取消绑定很多键,因为我从不使用Emacs的那些功能,当我意外按下绑定键时我不想执行它们!这也为其他任务释放了许多密钥(例如,与Cedet一起使用)。因此除了global-unset-key之外,还有什么方法可以批量删除绑定吗?
C-a move-beginning-of-line
C-b backward-char
C-c mode-specific-command-prefix
C-d delete-char
C-e move-end-of-line
C-f forward-char
C-g keyboard-quit
C-h help-command
C-k kill-line
C-l recenter-top-bottom
C-n next-line
C-o open-line
C-p previous-line
C-q quoted-insert
C-t transpose-chars
C-u universal-argument
C-v scroll-up
C-x Control-X-prefix
C-z suspend-frame
ESC ESC-prefix
我想删除大部分对我来说毫无用处的绑定。
答案 0 :(得分:37)
没有内置的方法来取消设置很多键,因为它很容易自己做:
(编辑严格正确:)
(dolist (key '("\C-a" "\C-b" "\C-c" "\C-d" "\C-e" "\C-f" "\C-g"
"\C-h" "\C-k" "\C-l" "\C-n" "\C-o" "\C-p" "\C-q"
"\C-t" "\C-u" "\C-v" "\C-x" "\C-z" "\e"))
(global-unset-key key))
虽然我不得不说大多数你称之为“无用”的命令我称之为“必不可少”。
(已编辑添加:)
至于释放其他任务的密钥,还有很多未使用的密钥空间:
C-c
后跟字母组成的密钥序列。super
之类的Emacs修改器相关联。例如,我super-b
绑定了browse-url-at-point
。shift-meta-b
绑定了bury-buffer
。defalias
提供更短的名称。在我的.emacs文件中,我有(defalias 'ru 'rename-uniquely)
和(defalias 'c 'calendar)
(以及其他许多内容)。答案 1 :(得分:10)
global-unset-key
和local-unset-key
很有用,但值得回答这个问题,指出一般取消绑定密钥的方法(对于任何 keymap)用于定义nil
:
(define-key KEYMAP KEY nil)
如果您按照其他任何一项功能的代码进行操作,您会发现这正是他们所做的。