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