2012-08-11 109 views
0

我是vimscript的新手,所以这很可能也很简单。我知道update这个命令就像write,除了它只在有更改时才写入。我想有这样的事情只有在更新命令执行某些操作时才执行脚本

if (update) 
    call expensiveOperation() 

其中,如果update实际上做了一件昂贵的操作只调用。但是,我不熟悉vim知道如何做到这一点。这怎么能实现?

回答

1

不是直接的,它是可能的:update做一些操作,如果&modified选项似乎是真实的(当&buftype或者是“NOFILE”或“NOWRITE”这个选项的值被忽略)。因此,您应该执行以下操作:

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