当在tmux会话中打开的vim进程上移动光标时,为什么它会不时留下一条幽灵字符的轨迹-^[OB,^[OA?

当在tmux会话中打开的vim进程上移动光标时,为什么它会不时留下一条幽灵字符的轨迹-^[OB,^[OA?,vim,tmux,Vim,Tmux,如果我上下翻页,这些会消失。为什么会发生这种情况?我该如何纠正它 我最近在摆弄我的vimrc。这可能是原因吗 更新: 我找到了原因。我添加了自动更新cwd名称和vim状态行中当前git分支的函数。这导致vim滞后,每次点击上/下/左/右键时,它都会打印出重影字符^[OA,等等。 可能是因为我在tmux中使用了vim,所以事情变得复杂了,但我也看到了tmux外的幽灵角色。所以,可能不是。 我已经在我的.vimrc中关闭了这两个功能,现在我的vim状态行不如以前那么棒了:( 希望有出路。在不知道v

如果我上下翻页,这些会消失。为什么会发生这种情况?我该如何纠正它

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

更新: 我找到了原因。我添加了自动更新cwd名称和vim状态行中当前git分支的函数。这导致vim滞后,每次点击上/下/左/右键时,它都会打印出重影字符^[OA,等等。 可能是因为我在tmux中使用了vim,所以事情变得复杂了,但我也看到了tmux外的幽灵角色。所以,可能不是。 我已经在我的.vimrc中关闭了这两个功能,现在我的vim状态行不如以前那么棒了:(
希望有出路。

在不知道vimrc中有什么的情况下很难说,但您可以通过启动它而不运行它,并使用以下命令查看它是否仍然发生来确认它是否在那里


vim-u NONE
^[OB
^[OA
是您的终端如何表示

我在“命令行”或omni完成菜单中以及在tmux中使用vim中的几个插件时看到了这些(以及他们的朋友
^[OC
^[OD
)出现

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

map ^[OA <up>
map ^[OB <down>
map ^[OC <right>
map ^[OD <left>
map^[OA
地图^[OB
地图^[OC
地图^[OD
如果您不知道,您不能将
^[
作为两个字符键入,您必须执行


也就是说,在
--插入--
模式下,同时按下控制键和V键,然后按下退出键。这样做将输入正确的单个类似
的字符^[

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

下面是一个解决方案,它对我来说很有效,而且似乎没有映射密钥那么麻烦:


set term=cons25

您是否碰巧在使用zsh?我在vim+zsh中遇到了这个问题/oh my zsh。回到vanilla bash解决了这个问题(以及其他问题)我在vim中遇到的问题。

Hmm..如果我用-u标志启动,我不会看到那些奇怪的鬼角色。所以,我想这与我的vimrc有关。除了暴力尝试和错误之外,有没有一种简单的方法来找出vimrc文件中麻烦的部分?不幸的是,不要这样认为。记住,你的vimrc只是一个可以在程序本身中运行的命令,因此您不需要继续编辑文件并重新启动。只需在
-u NONE
中逐个运行命令,然后查看它何时中断。在开始之前,我想检查一下vimrc中是否设置了行
nocompatible
(你可能会,但以防万一)。如果你没有,试着添加它,看看它是否能解决问题。好的。我没有找出原因,但我从@romainl获得了解决方案。谢谢你的帮助!编辑:它们好像消失了,但又回来了。
map OA map OB map OC map OD
这是我添加到我的.vimrc中的。不知道出了什么问题。我做了正如你这次所说的。我最后对这个函数进行了注释,它帮助我跳转到下一行,并带有相同的缩进,在我注意到这些鬼字符之前,我已经将缩进添加到我的vimrc中。这似乎解决了问题。我有一个类似的问题,除了到处都出现h j k l。禁用git分支名称函数n状态行修复了它。