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

时间:2013-10-27 04:36:06

标签: vim

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

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

4 个答案:

答案 0 :(得分:6)

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

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

实施例

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

这将显示:

  • [:literal
  • %n:缓冲区编号
  • ]:literal
  • \<Space>:空格
  • %<:如果太长则在开头截断字段
  • %f:缓冲区中文件的路径,与当前类型相关或相对于当前文件       目录。
  • %h:帮助缓冲区标记,文本为“[help]”。
  • %m:修改后的标志,文字为“[+]”; “[ - ]”如果'可修改'关闭。

有关详细信息,请参阅:

答案 1 :(得分:6)

致电:ls,您会在未保存的缓冲区

之前看到+

答案 2 :(得分:0)

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


状态看起来像这样

"file_name" 100 lines --20%--

如果文件未修改,或者

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

如果文件被修改。


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

答案 3 :(得分:0)

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

:set title

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

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


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