仅当update命令执行某些操作时才执行脚本

时间:2012-08-11 14:51:48

标签: vim

我是vimscript的新手,所以这可能很容易。我知道update命令就像write一样,除了只有在进行了更改时才会写入。我想要像

这样的东西
if ( update )
    call expensiveOperation()

只有在update实际执行某些操作时才会调用昂贵的操作。但是,我对vim不太熟悉,知道如何做到这一点。如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

不直接,有可能:如果update选项看起来为真,&modified会执行某些操作(当&buftype为“nofile”或“nowrite”时,将忽略此选项的值)。因此,您应该执行以下操作:

let wasmodified=(&modified && !(&buftype is# 'nowrite' || &buftype is# 'nofile'))
update
if wasmodified
    call ExpensiveOperation()
endif