10

我曾经使用netbeans,当文件自上次保存后发生更改时,它总是加上一个星号并更改选项卡颜色。有没有办法让vim做类似的事情,就是提醒我没有保存文件?

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

4

4 回答 4

8

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

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

例子:

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

这将显示:

  • [: 字面意思
  • %n: 缓冲区号
  • ]: 字面意思
  • \<Space>: 空间
  • %<: 如果太长,截断开头的字段
  • %f:缓冲区中文件的路径,与当前目录相同或相对于当前目录。
  • %h:帮助缓冲区标志,文本为“[help]”。
  • %m: 修改标志,文本为“[+]”;"[-]" 如果 'modifiable' 关闭。

有关更多信息,请参阅:

于 2013-10-27T04:42:24.570 回答
7

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

于 2013-10-27T06:10:28.480 回答
1

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

:set title

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

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


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

于 2018-09-15T15:54:50.750 回答
0

Pressing Ctrl+g (or equivalently :f) in normal mode will show the file status, which indicates whether the file is modified.


The status looks like this

"file_name" 100 lines --20%--

if the file is not modified, or

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

if the file is modified.


For more info see :help ^g.

于 2018-09-15T15:51:14.350 回答