我希望能够像在shell提示符下一样,在Vim中使用Option-left和Option-right跳过单词(而Cmd-left / right转到行的开头和结尾)。我Iterm2喜好有映射做到这一点(例如Option-left
到Esc-H
和一个option-right
以Esc-F
跳过的话),而这个作品在外壳本地或当SSH方式登录到远程服务器。
当我在本地或远程使用Vim时,option-left
可以工作,但option-right
不能。我怀疑这是因为Vim自然会听Esc-H
,但不是Esc-F
。我可以通过将.vimrc文件修改为Esc-b
tob
和Esc-f
to来解决此问题f
,但是我不想对要连接的每个服务器执行此操作。
同样,对于行的开始和结束,我对Cmd-left / right具有相同的期望设置。我可以通过Iterm2映射(例如Cmd-left
到Esc-[h
)在shell中使用它,但是Vim除非对此再次映射键(例如Esc-[h
到^
),否则根本不会对此做出响应。
更新:我只是想出了如何使选项左/右工作。我在iTerm2中更改了分别为escape-[1;5D
和的映射escape-[1;5C
。我仍然想解决Cmd-left / right问题(我更改了问题标题以反映这一点)。有任何想法吗?
为了模仿OS X发送Cmd-left/right
到行首/结尾的行为,我在iTerm2中添加了以下映射:
Cmd-left
逃逸序列 [1~
Cmd-right
逃逸序列 [4~
为了模仿OS X发送Option-left/right
到上一个/下一个单词的行为,我在iTerm2中添加了以下映射:
Option-left
逃逸序列 [1;5D
Option-right
逃逸序列 [1;5C
特别感谢此博客文章跟踪了我在cmd-left/right
映射中缺少的内容
注意:这在OS X上的本地python shell中不起作用,但是在ssh到linux计算机时,它们在python shell中起作用。不知道为什么。如果我使用下面提到的ilias映射,则它们在Vim中不起作用,但在其他所有地方(包括python),它们都可以工作
除非您安装pypi.python.org/pypi/readline,否则OS X中的python shell不使用readline
这可以很好地工作,
vim
但不能工作bash
(例如,编写长命令时):(@DolanAntenucci,您好,.vimrc中的等效映射是什么(我的工作流是Terminal.app,tmux和vim)?类似于地图<M-Left> [1; 5D和<M-Right> [1; 5C吗?
该解决方案和Karim都不适用于我的Cmd左/右绑定。我必须设置
bindkey '^[[1~' beginning-of-line
和bindkey '^[[4~' end-of-line
在我~/.zshrc
,那么我能够按照该答案设置转义码。现在,iTerm2和Vim都可以按预期运行。