2012-08-11 134 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 
相關問題