首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存命令后回显当前行

保存命令后回显当前行
EN

Stack Overflow用户
提问于 2014-05-07 12:15:13
回答 3查看 422关注 0票数 0

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

  1. 我如何才能找出为什么当前行的回声对某些文件是成倍的?
  2. 如果保存后的当前行的回音对vim来说是不正常的,那么是否有可能合理地找出当前行的回显(我有相当数量的插件和配置,我希望避免依次禁用每个插件,以找出造成这种混乱的原因)。
  3. 如果回声是由vim完成的,那么是否可以完全禁用它?
EN

回答 3

Stack Overflow用户

发布于 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]

票数 3
EN

Stack Overflow用户

发布于 2014-05-07 12:42:50

不,在将缓冲区写入磁盘时,Vim不回显当前行。它可能是一个由自动命令绑定到某个事件的命令/函数。

  1. 查找可能的自动命令: :详细自动bufwrite,bufwritepost,bufwritepost,bufwritecmd :详细的autocmd filewritepre,filewritecmd,filewritecmd:详细的autocmd文件附录,文件附录:详细的自动筛选器,filterwritepost
  2. 寻找可能的映射: ::详细地图:w等…

还有,你用合成词吗?

票数 1
EN

Stack Overflow用户

发布于 2021-03-03 12:24:56

这种情况最近开始发生在我身上,尽管当前的行只在每写一次,而不是最多6次被回音/打印。

通过对我的插件和vimrc进行二进制搜索,正如Ingo Karkat在他的回答中所建议的那样,我将其缩小到以下几个方面:

  • 实现相当于:autocmd BufWritePre * noautocmd | ...的插件
  • 我的'shortmess'既不包含o也不包含O

我不知道为什么这个组合会导致当前行被回放/打印。但这是对noautocmd命令修饰符的错误使用;它应该是noautocmd ...而不是noautocmd | ...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23517541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档