如何使vim指示自上次保存以来文件已更改?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使vim指示自上次保存以来文件已更改?相关的知识,希望对你有一定的参考价值。

我曾经使用netbeans,它总是放一个星号,并在文件自上次保存后更改时更改了标签颜色。有没有办法让vim做类似的事情,也就是提醒我,我还没有保存文件?

我知道有一种方法可以让它偶尔自动保存,但我不想这样做。

答案

如果文件被修改,您可以使用m选项中的'statusline'标志添加[+]。请注意,为了查看状态行,您需要将'laststatus'设置为大于0(如果有两个或更多窗口,则1-Only显示状态行,2-Always)。

如果您使用的是GUI版本,例如MacVim,您可能更喜欢设置'titlestring',它使用相同的语法,但会改变窗口管理器中窗口的名称。

Example:

:set laststatus=2
:set statusline=[%n] %<%f%h%m

这将显示:

  • [:字面意思
  • %n:缓冲区号码
  • ]:字面意思
  • <Space>:一个空间
  • %<:如果太长,就会在开头截断该字段
  • %f:缓冲区中文件的路径,类型为当前目录或相对于当前目录。
  • %h:帮助缓冲区标志,文本是“[help]”。
  • %m:修改过的标志,文字是“[+]”; “[ - ]”如果'可修改'关闭。

有关更多信息,请参阅

另一答案

调用:ls,你会在未保存的缓冲区之前看到一个+

另一答案

在正常模式下按Ctrl + g(或等效:f)将显示文件状态,指示文件是否已修改。


状态如下

"file_name" 100 lines --20%--

如果文件未被修改,或

"file_name" [Modified] 100 lines --20%--

如果文件被修改。


有关更多信息,请参阅:help ^g

另一答案

如果终端在某处显示其标题,则可以使用

:set title

显示文件是否被修改:如果文件名被修改,则显示+

但是,文件的文件名末尾可以包含 +。对于大多数文件,这应该工作正常。


资料来源:https://stackoverflow.com/a/13244715/5267751

以上是关于如何使vim指示自上次保存以来文件已更改?的主要内容,如果未能解决你的问题,请参考以下文章

错误:找不到要更新的行。自上次读取以来,某些值可能已更改。关于将提供程序从 SQLOLEDB 更改为 MSOLEDBSQL

sh 自上次更改某个文件以来获取所有提交

VB - 检索自上次更改以来对 .txt 文件的新增内容

如何计算自上次事件==1 以来的天数?

如果自上次事件以来传感器读数没有更改,则如何在未发送传感器读数时计算窗口上的聚合?

打开vim后怎样编写c/c++/java文件即编译运行 编写完后如何保存 保存路径在哪 路径是不是可更改