我做了一个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
我想删除大部分对我来说绝对没用的绑定.
Sea*_*ean 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))
Run Code Online (Sandbox Code Playgroud)
虽然我不得不说大多数你称之为"无用"的命令我称之为"必不可少".
(已编辑添加:)
至于释放其他任务的密钥,有很多未使用的密钥空间:
C-c按照惯例为用户保留由后跟字母组成的键序列.super.例如,我必须super-b这样browse-url-at-point做.shift-meta-b做bury-buffer.defalias提供更短的名称.在我的.emacs文件,我有(defalias 'ru 'rename-uniquely)和(defalias 'c 'calendar)(在许多其他).phi*_*ils 11
global-unset-key并且local-unset-key是有用的,但值得回答这个问题,指出取消绑定键(对于任何键映射)的一般方法是定义绑定:nil
(define-key KEYMAP KEY nil)
Run Code Online (Sandbox Code Playgroud)
如果你按照其他任何一个函数的代码,你会发现这正是他们所做的.