如何在ITerm2(Mac OSX)中重新映射转义序列?

时间:2016-03-28 19:54:14

标签: unix escaping iterm

我在Mac OSX上使用ITerm2,我正试图让“跳过单词”热键(alt left,alt right)工作。在ITerm2上,这是通过映射⌥ ← to b⌥ → to f(在此处找到:https://coderwall.com/p/h6yfda/use-and-to-jump-forwards-backwards-words-in-iterm-2-on-os-x)来完成的。但是,似乎VIM的跳过单词功能不响应bf转义序列,而是响应[1;5C[1;5D(在此处找到:https://stackoverflow.com/a/9611698/800735

所以看起来我需要一组不同的热键来跳过VIM上的单词,而另一组则需要Iterm2上的单词。我想要做的是将转义序列bf重新映射到ITerm2中的[1;5C[1;5D,以保持一致性。我知道它是通过将此添加到.Xresources在XTerm上完成的: URxvt*keysym.Meta-f: \033[1;5C URxvt*keysym.Meta-b: \033[1;5D

ITerm2中是否存在等效内容?

由于

1 个答案:

答案 0 :(得分:2)

提及的第一页( http://www.cplusplus.com/reference/type_traits/ )对"命令行"含糊不清。鉴于它正在谈论OSX,作者可能会引用bash,并使一些键为该shell发送有用的绑定。 bash具有预定义键绑定,将转义字符视为修饰符。

另一页( Use ⌥ ← and ⌥→ to jump forwards / backwards words in iTerm 2, on OS X )正在解决vim的类似问题。但vim特别对待逃脱角色。所以在那里使用的绑定有一个转义序列(不一定普遍可用 - 但如果它对你有用,不是问题)。

由于iTerm2并不真正知道您正在使用哪个程序,因此一种方法是使用iTerm2发送的转义序列(以及vim接受)bash 1}}" .inputrc"文件。

以下是一些讨论该解决方案的链接(这不是一个新问题):

顺便说一下,转义序列中的5用于 control 修饰符,记录在How do I make ctrl-arrow keys move forward/backward a word at a time in Cygwin bash?中。