【问题标题】:How to remap escape sequences in ITerm2 (Mac OSX)?如何在 ITerm2 (Mac OSX) 中重新映射转义序列?
【发布时间】:2016-03-29 08:07:22
【问题描述】:

我在 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。我想做的是在 ITerm2 中将转义序列 bf 重新映射到 [1;5C[1;5D,以保持一致性。我知道它是通过将它添加到 .Xresources 在 XTerm 上完成的: URxvt*keysym.Meta-f: \033[1;5C URxvt*keysym.Meta-b: \033[1;5D

ITerm2 中是否有等价物?

谢谢

【问题讨论】:

    标签: unix escaping iterm


    【解决方案1】:

    提到的第一页 (Use ⌥ ← and ⌥→ to jump forwards / backwards words in iTerm 2, on OS X) 对“命令行”含糊其辞。鉴于它正在谈论 OSX,作者可能指的是bash,并让一些键为该 shell 发送有用的绑定。 bash 具有 predefined 键绑定,将转义字符视为 meta 修饰符。

    另一个页面 (How to get Cmd-left/right working with iTerm2 and Vim (without requiring .vimrc changes)?) 正在解决与 vim 类似的问题。但是vim 特别对待转义字符。所以那里使用的绑定是一个转义序列(不一定是普遍可用的——但如果它对你有用,那不是问题)。

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

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

    顺便说一下,转义序列中的5 用于control 修饰符,记录在XTerm Control Sequences 中。

    【讨论】:

    • 谢谢,所以 Bash 控制终端中转义序列和函数(即前向词、后向词)之间的映射? ITerm2 中的默认映射是f -> forward-wordb -> backward-word。这些是从哪里来的(因为 [1;5C[1;5D 似乎是 bash 的默认设置)。对于我对终端如何工作的无知,我深表歉意;P
    • Bash 的 escape-f 和 escape-b 可能早于 iTerm2 支持的 xterm 中使用的控制序列。
    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 2012-11-18
    • 2018-05-11
    • 2014-05-10
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    相关资源
    最近更新 更多