3

我不喜欢必须按下ESC才能更改为正常模式,所以我正在编写一个小脚本来为我做这件事,一段时间后。但我收到以下错误:

Error detected while processing InsertEnter Auto commands for "*":
E521: Number required after =: updatetime=aunm

这是脚本

let aunm=800
au InsertEnter * let aunm_restore=&updatetime | set updatetime=aunm | au CursorHoldI * :stopinsert
au InsertLeave * let &updatetime=aunm_restore

如果我手动删除let aunm=800并设置set updatetime=800它会完美运行。但如果需要,我希望有一个全局变量来更改时间。

4

1 回答 1

5

采用

let &updatetime=aunm

. set不接受表达式。


顺便说一句,我看到你的代码不断添加 CursorHoldI 事件而不清除它们,这样你最终可能会得到一百个。你应该使用

autocmd! CursorHoldI * :stopinsert

(用 bang)或只添加一次(在 之前有一行au InsertEnter),在任何情况下它都不会在插入模式下被触发。注意:此命令将清除所有 CursorHoldI具有模式*且不在任何组中的事件,因此如果您有更多事件,则必须将它们或 this 放入 a augroup {GroupName} | au … | augroup END(最好将两者都放入)。

于 2012-11-18T14:06:43.467 回答