emacs 键绑定(bind)在终端中不起作用

标签 emacs terminal key-bindings

我在 .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/

相关文章:

python - emacs-ipython-notebook 和 SCIMAX

emacs - Emacs 中的(Ctrl + 上/下)式滚动

visual-studio-code - VSCode - Ctrl + Alt + L 添加奇怪的字符。需要摆脱它

Java 2D 游戏 : The game loop

keyboard - 使用 xkbdmap (setxkbmap) 将 rwin 映射到 altgr?

windows - Magit 无法识别 git 存储库

emacs - Emacs/Elisp 中的多态回调

bash - 有没有办法让链接在 OSX 终端中可点击?

shell - android通过命令行启用禁用蓝牙

node.js - Bower 初始化命令错误