在以vim保存文件后,当前行将很快回显,之后文件名和“书面”消息将被回显。这是正常的,我认为这是一种正常的vim行为,但是在处理更多的文件之后,一些文件多次回显当前行(在某些情况下最多6次,如屏幕截图所示)。当这个输出大于命令行高度时,它会触发一个提示符“按回车或命令继续”。

发布于 2014-05-07 12:46:50
诊断
这不是默认的Vim行为。只有filename, 3L 42C written消息来自:write。
因为回显行包含行号和高亮显示,它看起来像是由:print或:number命令生成的。
实例数量增加的事实表明,这是由一些重新定义的:autocmd造成的(没有正确地清除前一个定义)。
故障排除提示
通常,在二进制搜索中,禁用一半(文件类型-)插件,然后只禁用其中的一半(当问题仍然存在时),或者另一半(当问题消失时),可以让您快速找到有问题的脚本。~/.vimrc中的配置也可以这样做(通过注释掉块)。
此外,您还可以使用vim -V20vimlog捕获Vim会话的完整日志。退出Vim后,检查vimlog日志文件中是否存在可疑命令,在您的示例中是:print、:number或:echo[msg]。
发布于 2014-05-07 12:42:50
不,在将缓冲区写入磁盘时,Vim不回显当前行。它可能是一个由自动命令绑定到某个事件的命令/函数。
还有,你用合成词吗?
发布于 2021-03-03 12:24:56
这种情况最近开始发生在我身上,尽管当前的行只在每写一次,而不是最多6次被回音/打印。
通过对我的插件和vimrc进行二进制搜索,正如Ingo Karkat在他的回答中所建议的那样,我将其缩小到以下几个方面:
autocmd BufWritePre * noautocmd | ...的插件'shortmess'既不包含o也不包含O。我不知道为什么这个组合会导致当前行被回放/打印。但这是对noautocmd命令修饰符的错误使用;它应该是noautocmd ...而不是noautocmd | ...。
https://stackoverflow.com/questions/23517541
复制相似问题