9

我的问题是这样的:首先,我使用 Mac 上的 Terminal.app 通过 ssh -Y 登录到远程服务器。然后通过键入打开安装在该远程服务器上的 emacs

emacs

因为我在使用 ssh 时添加了选项 -Y,所以在 Mac 上安装的 XQuartz 中打开了 emacs。

这时候问题来了:option键没有被当作Meta,只有ESC键被当作Meta。但我想将选项键用作 Meta。

我该如何解决?

4

1 回答 1

8

看看http://www.emacswiki.org/emacs/MetaKeyProblems

特别是这部分。

然后,您可以使用 option/alt 键作为元键从 X11 窗口(Applications/Utilities/X11.app)运行 emacs。此外,您可以使用 xmodmap 命令将命令键重新映射到仅在 X11 下的 Control。这样做的好处是允许命令键与其他 Mac 应用程序配合使用。xmodmap 还可以确保将 Alt/Option 键设置为 emacs 中的 Meta 键。您可以使用以下 ~/.xmodmap 文件执行此操作(以感叹号开头的行是注释,可以省略):

! undo any meta keys already set
 clear Mod1
 ! keycodes 63 and 71 are the left and right COMMAND buttons adjacent to the spacebar; set them to be control keys
 keycode 63=Control_L
 keycode 71=Control_R
 ! keycodes 66 and 69 are the option/alt keys; assign them as Meta keys
 keycode 66=Meta_L
 keycode 69=Meta_R
 ! now tell X11 that the Meta keys act as the Mod1 (meta) modier key; that is, when they are pressed with KEY, it is the same as hitting M-KEY
 add Mod1 = Meta_L Meta_R
 ! tell X11 that the Control keys are Control modifiers, so when pressed with u (for example) it is the same as hitting C-u
 add Control = Control_L Control_R

将上述文件与命令一起使用

xmodmap ~/.xmodmap

在启动 emacs 之前(例如,如果您使用 xterm 的登录 shell 选项,则从 /etc/bashrc 开始,即 X11/Application/Customize 中的 xterm -ls 用于终端)。

于 2013-01-17T12:58:57.843 回答