私はvimscriptが初めてなので、これはおそらく簡単なものです。変更が加えられた場合にのみ書き込むことを除いて、update似たようなコマンドを知っています。write次のようなものが欲しい
if ( update )
call expensiveOperation()
update高価な操作は、実際に何かを行った場合にのみ呼び出されます。しかし、私はこれを行う方法を知るほど vim に精通していません。これはどのように達成できますか?
私はvimscriptが初めてなので、これはおそらく簡単なものです。変更が加えられた場合にのみ書き込むことを除いて、update似たようなコマンドを知っています。write次のようなものが欲しい
if ( update )
call expensiveOperation()
update高価な操作は、実際に何かを行った場合にのみ呼び出されます。しかし、私はこれを行う方法を知るほど vim に精通していません。これはどのように達成できますか?
直接ではなく、可能です:オプションが true のように見えるupdate場合、何らかの操作を実行&modifiedします (このオプションの値は、&buftypeが「nofile」または「nowrite」の場合は無視されます)。したがって、次のことを行う必要があります。
let wasmodified=(&modified && !(&buftype is# 'nowrite' || &buftype is# 'nofile'))
update
if wasmodified
call ExpensiveOperation()
endif