编辑时,vim 有时会将字符重复。也就是说,在输入时,某些字符会出现两次。如果我尝试删除,vim 会以与字符出现的顺序不同的顺序删除这些字符。如果我不删除而是保存文件,退出 vim,重新打开文件,我可以看到实际上没有字符重复,它只是这样出现。
尝试设置 notimeout,并在本地目录上设置 backupdir,但问题仍然存在。
此外,当我使用 hjkl 在正常模式下移动时,有时给定的字符会出现在终端中,即我多次按下“j”键并向下移动光标,它会留下一串“j”字符,而这些字符实际上并未写入文件中,我只在终端中看到它们,关闭 vim 并重新打开文件可以暂时解决问题。
这非常烦人,因为我每次输入一行代码或者向下移动一页都会遇到这个问题。
我正在使用 Ubuntu 10.10:
- gnome 终端 2.32.0
- curlftpfs 0.9.2
- libcurl/7.21.0
- 保险丝/2.8
答案1
我最近遇到了这个问题。就我而言,症状如下:
在命令模式下移动时,会出现与光标键相关的字符
hjkl
或转义序列在命令和插入模式下,行会损坏,看起来好像行没有正确更新。
这些影响不会发生在 gVim 中,但无论使用什么终端仿真器都会发生。
我使用的是下载的 Vim 配置——它定义了一个函数,该函数运行一个 shell 命令,返回文件来自哪个 git 分支。输出将打印到状态栏上。但是,我没有安装 git,所以这总是引发异常。删除该函数完全解决了我的问题。
错误仅在屏幕变化时发生,也就是调用此函数时。我认为不断调用 shell 并让它在每次按下键时返回异常会使终端仿真器的速度变慢,从而阻止它正确更新。当我打开许多 Firefox 选项卡或按住 hjkl 或光标键时,错误发生的频率更高。
为了解决这个问题,请尝试禁用文件中调用 shell 的任何函数.vimrc
、可能引发异常或耗时的函数。