0

私はvimscriptが初めてなので、これはおそらく簡単なものです。変更が加えられた場合にのみ書き込むことを除いて、update似たようなコマンドを知っています。write次のようなものが欲しい

if ( update )
    call expensiveOperation()

update高価な操作は、実際に何かを行った場合にのみ呼び出されます。しかし、私はこれを行う方法を知るほど vim に精通していません。これはどのように達成できますか?

4

1 に答える 1

1

直接ではなく、可能です:オプションが true のように見えるupdate場合、何らかの操作を実行&modifiedします (このオプションの値は、&buftypeが「nofile」または「nowrite」の場合は無視されます)。したがって、次のことを行う必要があります。

let wasmodified=(&modified && !(&buftype is# 'nowrite' || &buftype is# 'nofile'))
update
if wasmodified
    call ExpensiveOperation()
endif
于 2012-08-11T18:02:13.050 に答える