Vimscript检查当前缓冲区是否有未保存的更改

时间:2012-10-28 08:39:27

标签: vim

我目前已设置状态行,因此在插入模式下为橙色,否则为白色。如果文件有任何未保存的更改,我想回到正常模式时,它会变成另一种颜色,因为我经常走一个兔子洞,想知道为什么我的更改没有生效。小“[+]”并没有让我满脸;)

我找不到任何以“buf”开头的函数,但看起来像是肮脏的谓词。我假设一个存在,但被命名为其他东西。我希望有类似bufdirty()bufchanged()的内容。有什么指针吗? :)

2 个答案:

答案 0 :(得分:19)

我认为你正在寻找

:echo &mod[ified]

如果修改则返回1,如果未修改则返回0

答案 1 :(得分:3)

我喜欢使用状态行颜色来指示缓冲区状态。事实上,我写了StatusLineHighlight plugin,它表示以下属性:modified,readonly,unmodifiable,special non-file“scratch”(但不是你正在使用的插入模式;为此,我发现Vim的模式指示在左下角足够了。