我在 .emacs 文件中设置了以下键绑定(bind):
(global-set-key (kbd "C-S-M-w") 'windmove-up)
(global-set-key (kbd "C-S-M-s") 'windmove-down)
(global-set-key (kbd "C-S-M-d") 'windmove-right)
(global-set-key (kbd "C-S-M-a") 'windmove-left)
(global-set-key (kbd "C-S-a") 'shrink-window-horizontally)
(global-set-key (kbd "C-S-d") 'enlarge-window-horizontally)
(global-set-key (kbd "C-S-s") 'shrink-window)
(global-set-key (kbd "C-S-w") 'enlarge-window)
当它们在自己的窗口中时,它们工作得很好。但是,如果我在终端(emacs -nw)中运行它,则不会加载键绑定(bind)。即使在加载 .emacs 文件后,我仍然没有键绑定(bind)。
当我使用 emacs 守护程序并在客户端和终端中打开时,情况也是如此。如果这很重要,我在一台 linux 机器上。
最佳答案
问题不在于 emacs,问题在于修饰键(Control、Shift 和 Alt)的组合在大多数终端程序中表现不佳。类似的问题不断出现在这里和许多其他地方,包括 super 用户,例如:emacs - [control shift up] doesn't work , 和 https://superuser.com/q/230852 .您需要在您的特定终端中对其进行测试 - 但例如检查 Gnome 终端表明 C-S-
与 C-
无法区分,因此您的大多数绑定(bind)甚至都不是使其正确地进入emacs
如果你需要说服自己使用 C-h k
然后你缺少的组合。您会看到,当您在终端中运行时,这些组合会去掉一些修饰符。
我也经历过类似的经历,得出的结论是,与终端战斗不值得。当您在终端中时,我建议您将需要多个修饰符的组合键重新映射到其他内容。 (例如,我最终将 windmove 命令重新映射到 F 键。)或者,我可以推荐使用 evil leader key (如果你使用 evil),或 God mode否则。这大大减少了对多个修饰符的需求。
关于emacs 键绑定(bind)在终端中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38732424/