使iTerm以与其他操作系统相同的方式翻译“元密钥”


178

在具有emacs键绑定的bash shell中,可以使用Mf,Mb之类的组合键在shell提示符上分别向前或向后移动一个单词。通常,在Windows和Linux上,元键映射到Alt键。但是,在iTerm中,我找不到将此元密钥映射到MacBook Pro上的Option或Command键的方法。

似乎在OS X中,默认情况下,元键已映射到ESC键。因此,您可以在iTerm上使用ESC-f,ESC-b。但是,ESC键显然不实用。另外,iTerm确实具有允许您修改元键映射的选项(“书签”>“配置文件”>“键盘配置文件”>“全局”>“选项键为...”),此设置似乎根本不起作用。

因此,如果有人知道解决该问题的方法,请告诉我。

我已升级到最新版本0.9.6.1012,并且此行为仍然存在。

编辑:我的问题的一些澄清。我正在谈论的键绑定是针对bash shell,而不是emacs。碰巧,默认情况下,bash shell也使用与emacs相同的键绑定。


解决了这个问题一段时间后,无法找到解决方案。我放弃了,现在切换到终端。
ejel

2
不要忘了iterm2已经存在,那里一切都很好=)
holms 2011年

Answers:


207

Cmd+.ProfilesKeys和选择Left option Key acts as: +Esc

在emacs中对我有用,尽管我不确定它是否还会有其他不良影响。


我确实尝试使用Option Key as ...进行所有选择,但是在bash shell中没有一个对我有用。它只显示“?” 每次按meta键组合。
ejel

2
似乎您的输入语言必须是美国才能使用+ ESC选项。当我选择日语/罗马字输入法时,+ ESC不适用于我,但是一旦我将输入语言切换为美国,它便开始起作用
Dominic Cooney 2009年

2
“首选项”,“配置文件”,“键”并选择“左”选项,“键”的作用为:+ Esc。然后,您将同时具有左选项键和Esc键作为元键。这就是我的情况。
cgl

对于iTerm 2,这似乎是推荐的选项。
ejel

4
对于我的外部键盘,我必须同时设置左右选项键才能使用Esc+,即使我使用的是左选项键,它仍然会打印出奇怪的字符。因为我使用Mac键盘设置中的“ 键盘修饰符”选项来更改键,所以可能会发生这种情况。
grego

129

转到书签>管理个人资料。然后选择键盘配置文件>全局,然后选择选项键作为Meta。这适用于我0.9.6.1201版本。


2
我不得不更改xterm(OS X)条目而不是全局条目,但是它现在可以正常工作。
杰森·阿克森

我不知道为什么我的机器上的设置在0.9.6.1201和我尝试过的其他几个版本上都被破坏了。但是,它可以使用最新的0.9.6版本和0.10版本。因此,现在不应该成为问题。
ejel 2011年

11
在iTerm2中,这仅在我分别为+ 和+ 重新定义了配置文件快捷键发送转义序列 + / 后才起作用。alt->alt<-fb
amirnissim

我必须打开一个新的iterm会话才能参加
Skurpi 2014年

@SridharRatnakumar也为iTerm工作
Krzysztof Wende

31

在菜单栏Iterm2 =>首选项=>配置文件中,选择键选项卡,然后选择

左Option键充当+ Esc

在此处输入图片说明

在irssi也为我工作。


太好了,这也可以与iTerm2 + tmux结合使用-TheJavaGuy
IvanMilosavljević,


5

我使用iTerm2,对我来说,此答案仅部分解决了我的问题:

Cmd+ ,=> 配置文件 => 键,然后选择“左”选项键的作用是:+ Esc

在此处输入图片说明

除此之外,我还必须转到Cmd+ ,=> Profiles => Keys,然后在Key Mappings列表中找到Key Combination s:在此处输入图片说明在此处输入图片说明,双击它们并将其快捷方式更改为以下内容:

在此处输入图片说明

在此处输入图片说明

*请确保选择发送转义序列动作。


这真的很有帮助。非常感谢兄弟!
LeOn-韩立

4

在这里进行所有僵尸复活,但为了后代-

这篇文章让您可以按照我对Mb和Mf的要求进行工作,同时保持“ Option Key as Meta”的设置,因此您不必牺牲修饰符(我个人使用vim映射使用meta)。

总之,在“全局键盘配置文件”中,添加两个具有设置的新映射:

  1. 键为十六进制代码,b的值为62,f(man ascii)的值为66
  2. 修改器作为选项
  3. 作为发送转义序列,值b或f

我仍然想念Terminal.app的唯一一件事就是Opt-Backspace按单词删除。还有其他解决方法,但是我只是想训练自己使用Ctrl-w


自该答案以来,这可能是一项新功能,但是您可以映射一个全局按键快捷方式,以便Ctrl-wOpt-Backspace按下时发送。
Steve Buzonas 2014年

4

在iTerm2中更容易。转到首选项->书签->键盘,然后选择选项发送+ ESC。在iTerm2中,您可以分别配置左右选项键,因此,如果需要,请记住同时进行更改。iTerm2的链接:http ://sites.google.com/site/iterm2home/


2

转到书签>管理个人资料。然后选择键盘配置文件>全局,然后选择选项键作为+ ESC。

在iTerm Build 0.9.5.0611和Build 0.9.6.20090415中工作


嗯 这两个版本的机器上的设置似乎也被破坏了。但是,最新的0.9.6.20090928和0.10可以按预期工作。
ejel 2011年

2

我也找到了一些关于stackoverflow的解决方案,只需转到键盘配置文件,然后在“全局”中将“ Option键更改为” + ESC

最适合我的=)顺便说一句,我还存在一些iterm补丁:http://www.emacswiki.org/emacs/EmacsForMacOS


0

尝试“导出LANG = C”。我不是emacs专家,但是我发现这使OS X上的emacs能够将Option键识别为iTerm中的Meta键,


0

我不了解iTerm,但是您可以在Terminal中执行此操作。说明可以在这里找到:

Mac OS X Leopard按键绑定上的Emacs


谢谢。我知道我可以在Terminal中做到这一点。我只想在iTerm中获得相同的结果。顺便说一句,我正在寻找的是bash shell中的键绑定,而不是emacs中的键绑定。碰巧bash shell也使用emacs键绑定。
ejel

0

这对我有用:书签>管理配置文件>键盘配置文件>全局/ xterm>选项键为+ Esc。这样,我可以在Midnight Commander中使用Option + Enter,并按需在命令字符串中显示当前选择的文件/目录名称。选项密钥(如Meta)不适用于我。我的iTerm版本是0.10。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.