为什么 Option+左箭头在 Vim 中有效,但在 Mac OS X 上右箭头无效?

为什么 Option+左箭头在 Vim 中有效,但在 Mac OS X 上右箭头无效?

在 Mac OS X 上的终端中使用 Vim 时,我的 Option+左箭头按预期跳过单词,但 Option+右箭头没有任何反应。我该如何修复此问题?

答案1

我不太确定您是否要更改默认行为,因为这在其他终端应用程序中无法很好地运行。

Option+Left向后移动一个单词,因为 vim 将其视为esc+ b.(这似乎是终端中的默认设置)。因此,如果您处于插入模式,则会弹出到正常模式,然后执行 b,即向后移动一个单词。如果您处于正常模式,则 escape 不会执行任何操作,而 b 会将您向后移动一个单词。

Option+Right看起来什么都不做,因为 vim 将其视为esc+ f。 f 使 vim 等待下一个字母,如果您在 f 之后立即输入了某些内容,您将向前移动以查找该字母。

更改它的一种方法是进入终端首选项并更改Option+Right映射到的内容。您可以通过转到首选项 -> 设置 -> 选择当前配置文件 -> 键盘来执行此操作。此时,您可以编辑“选项光标右移”或添加新的“选项光标右移”(通过单击加号,这将覆盖实际的加号)。然后\033w通过键入esc+将映射设置为w。然后用鼠标点击确定。(按 Enter 将导致 Enter 键被文本框吸收。您不希望出现这种情况)

完成后,打开一个新选项卡,Option+Right将在 vim 中执行您想要的操作,但可能不会在其他地方执行您想要的操作。(但可能如此)

另一种方法是将映射更改为Control+LeftControl+ Right。通常在 vim 中,它们分别映射到BW。要执行此操作,请按照我为有没有办法使用 `Ctrl + ->` 逐字逐句地浏览

尽管学习如何仅使用键盘使用 vim 可能更好。

答案2

从 OS X Mojave 10.14.5 开始,很多更简单的解决方案:

你实际上不需要更改 mac 偏好设置中的任何内容。经过大量试验后,似乎您需要做的就是将其放入:map f w.vimrc 文件中!

由于某种原因,指定转义是不必要的,实际上会干扰我的预期行为。按照我的建议操作会自动转义并在 alt+右键输入时执行向前的单词(当然,相反的操作目前会自动进行)。

相关内容