将光标移动到tmux会话中打开的vim进程时,时不时地为什么会留下一些鬼字符 - ^ [OB,^ [OA?

时间:2011-08-08 19:12:49

标签: vim tmux

如果我进行翻页和向下翻页,这些消失了。为什么会发生这种情况,我该如何纠正呢?

http://i.stack.imgur.com/DnMYl.png

我最近摆弄了我的vimrc。这可能是原因吗?

更新: 我弄明白了原因。我添加了自动更新cwd名称和我的vim状态行中当前git分支的函数。这导致vim变得迟钝,并且每当它落在上/下/左/右键击中时,它就会打印出鬼影^ [OA等。 因为我在tmux中使用了vim,所以可能事情变得复杂了,但我也看到了tmux之外的鬼字符。所以,可能不是。 我已经关闭了.vimrc中的这两个函数,我的vim状态行目前比以前更糟糕了:( 希望有一条出路。

4 个答案:

答案 0 :(得分:5)

^[OB^[OA是您的终端代表<down><up>的方式。

我已经看到这些(以及他们的朋友^[OC^[OD)出现在“命令行”或omni-completion菜单中以及在vm in tmux中使用几个插件时。 / p>

我的解决方案是将它们映射到方向键:

map ^[OA <up>
map ^[OB <down>
map ^[OC <right>
map ^[OD <left>

如果您不知道,则不能将^[键入两个字符,您必须<C-v><Esc>

也就是说,在--INSERT--模式下,同时按下控制键和 V 键,然后点击转义键。这样做会输入正确的单个字符,该字符看起来像^[

答案 1 :(得分:2)

Vim Wiki article详细讨论了这个问题。似乎有多种原因,我个人在tmux下运行vim时遇到了这个问题。

那里的解决方案对我有用而且似乎比映射键更少hacky是以下配置:

set term=cons25

答案 2 :(得分:1)

很难说不知道你的vimrc中有什么,但你可以通过启动它而不运行它来确认它是否在那里,看看是否仍然使用以下内容...

vim -u NONE

答案 3 :(得分:0)

你碰巧使用zsh吗?我有这个问题与vim + zsh / oh-my-zsh。回到vanilla bash解决了这个问题(以及其他问题)我与vim的关系。