在 Mac 终端运行的 Emacs 中使用 CM-% 执行查询替换正则表达式

Eli*_*ria 7 mac terminal emacs

我正在尝试在 Emacs 中执行正则表达式搜索和替换,在运行 OS X 10.6.2 的 MacBook Pro 上的终端程序中运行。据我所知,这可以通过按 CM-% 来完成(我假设这意味着 Ctrl+Alt+Shift+5。如果我错了,请纠正我,因为我才刚刚开始学习 Emacs)。但是,当我这样做时,它不起作用。

我可以通过输入 Mx query-replace-regexp 来完成,当我这样做时,我在屏幕底部看到一个提示,说我也可以用 CM-% 来完成,但是当我尝试 CM-% 时,没有任何反应.

编辑:我想补充一点,我启用了“使用选项作为元键”终端选项,它似乎工作正常。例如,我可以使用 alt-B 和 alt-F 在 bash 和 Emacs 中一次前进和后退一个单词。

编辑2:我还想提一下,我的终端设置为将终端类型声明为“xterm”而不是“xterm-color”的默认值。我这样做的原因与这个问题无关(为了防止在我取消反向搜索后我的彩色提示看起来很有趣)。但是,我在 Emacs 中使用“xterm”和“xterm-color”进行了试验,无论哪种方式,我都遇到了与 CM-% 相同的问题。

我怎样才能使这项工作?

dmc*_*ten 1

你有没有尝试过<esc> C-%?这个对我有用。

转义键通常映射到元(而 alt(Mac 上的选项)并不总是映射到元)。唯一的问题是你不需要像换档键一样按住它,你只需点击它即可。

顺便说一句——如果您习惯使用 alt 作为 meta,那么接下来的问题是“如何在 mac 终端中将 alt 映射到 meta?” 我相信很久以前就有人在 Stack Overflow 上问过这个问题:Option or Command key as Meta key for LispBox on Macintosh suggest put (setq mac-command-modifier 'meta)in your .emacs file。