如何获得':设置修改的价值?'在Vim函数中

时间:2017-03-15 19:26:11

标签: vim scripting

我是Vim脚本的新手,但我还没有找到关于互联网问题的答案,也许这太容易了......

如果当前缓冲区被修改,我想做一个在拆分窗口中打开新缓冲区的脚本,否则它会在当前窗口中打开缓冲区。

我知道:set modified?会告诉我当前缓冲区是否被修改,但我找不到在函数中调用它的方法。

我喜欢这样的事情:

function! SmartOpen()
    if (:set modified? == 'modified')
        " open in a new window
    else
        " open in the same window
endfunction

有可能吗?

1 个答案:

答案 0 :(得分:3)

您可以使用&符号来获取设置的值。这样做:

function! SmartOpen()
    if &modified
        " open in a new window
    else
        " open in the same window
endfunction

由于&modified返回一个布尔值(好吧,技术上是一个int 01),你不需要对它进行字符串比较。

有关访问此类设置的更多信息,请参阅chapter 19 of Learn Vimscript the Hard Way

我已经四处寻找有关此功能的帮助文件,但我无法找到任何帮助文件

:h &

是关于普通模式命令的,

:h :&

是关于&命令。