我想用 Emacs 守护进程交换 Cx 和 Cu(因为我切换到 Dvorak 布局)。常规 keyboard-translate
不适用于 Emacs 守护进程。在 help-gnu-emacs 中我找到了一个解决方案:我应该使用(define-key key-translation-map ...)
而不是(keyboard-translate ...)
. 但是,即使交换在许多情况下(例如 Cx s)都可以正常工作,但我一直在发现交换无法正常工作的情况,例如在 Cu Mx eshell 中(当我键入最后一个命令时,我得到的只是“eeee”。但如果我输入 Mx 两次,命令会按预期工作)。你知道这个问题的任何解决方案吗?
更多细节:
这就是我的 .emacs 中的内容:
;; swap C-x and C-u
(define-key key-translation-map [?\C-x] [?\C-u])
(define-key key-translation-map [?\C-u] [?\C-x])
我正在使用 Emacs 23.3.1。
谢谢!