Emacs windmove键在Mac上

时间:2015-02-03 21:37:55

标签: macos emacs

我将Alt设置为windmove键,以在Mac下的Emacs中的帧之间切换。

(windmove-default-keybindings 'meta)

这适用于GUI版本的Emacs(带有小部件和其他窗口装饰的版本),但如果我从Mac Terminal.app启动带有emacs -nw的emacs则不行。例如,如果我先使用C-x 2拆分窗口,然后按Alt + <Down>,那么Emacs报告

 ESC + <Down> is undefined. 

有人可以帮忙吗?

从Brew安装中安装了Emacs版本24.4。

2 个答案:

答案 0 :(得分:1)

似乎最简单的方法就是安装iterm2。并在首选项&gt;配置文件选项卡。选择左侧的配置文件,然后打开Keyd选项卡并将选项键设置为+ESC

然后在您的emacs设置中手动设置密钥

(global-set-key (kbd "ESC <up>") 'windmove-up)
(global-set-key (kbd "ESC <down>") 'windmove-down)
(global-set-key (kbd "ESC <right>") 'windmove-right)
(global-set-key (kbd "ESC <left>") 'windmove-left)

我建议你使用iterm2,因为它是一个更好的终端。但是如果你想使用terminal.app,请不要忘记检查首选项中的Use option as meta key&gt;设置&gt;键盘,它在一定程度上适用于默认的emacs。

答案 1 :(得分:0)

当我使用terminator作为终端时,Ubuntu也是如此。

您可以使用win-switch程序包解决此问题,该程序包适用于我。这里有一个简单的配置,可以放在init文件中(.e.g。:.emacs):

;; install win-switch package using package manager
(if (package-installed-p 'win-switch)
    nil
  (package-install 'win-switch))

;; my favourite quick keybindings
(global-set-key (kbd "M-<left>")  'windmove-left)
(global-set-key (kbd "M-<right>") 'windmove-right)
(global-set-key (kbd "M-<up>")    'windmove-up)
(global-set-key (kbd "M-<down>")  'windmove-down)

win-switch包具有许多其他功能强大的实用程序,这些实用程序在代码的注释部分进一步详细说明。