0
我是vimscript的新手,所以這很可能也很簡單。我知道update
這個命令就像write
,除了它只在有更改時才寫入。我想有這樣的事情只有在更新命令執行某些操作時才執行腳本
if (update)
call expensiveOperation()
其中,如果update
實際上做了一件昂貴的操作只調用。但是,我不熟悉vim知道如何做到這一點。這怎麼能實現?
我是vimscript的新手,所以這很可能也很簡單。我知道update
這個命令就像write
,除了它只在有更改時才寫入。我想有這樣的事情只有在更新命令執行某些操作時才執行腳本
if (update)
call expensiveOperation()
其中,如果update
實際上做了一件昂貴的操作只調用。但是,我不熟悉vim知道如何做到這一點。這怎麼能實現?
不是直接的,它是可能的:update
做一些操作,如果&modified
選項似乎是真實的(當&buftype
或者是「NOFILE」或「NOWRITE」這個選項的值被忽略)。因此,您應該執行以下操作:
let wasmodified=(&modified && !(&buftype is# 'nowrite' || &buftype is# 'nofile'))
update
if wasmodified
call ExpensiveOperation()
endif