我经常在vim中这样做:[在插入或普通模式下进行某些操作],Esc,:ws。
我每天要做上百次这样的操作。相反,我想改掉这个习惯,并让vim在对缓冲区进行任何更改后立即保存到文件中。
所有东西都在SSD上运行,所以我不认为性能会成为一个问题。
我每天要做上百次这样的操作。相反,我想改掉这个习惯,并让vim在对缓冲区进行任何更改后立即保存到文件中。
所有东西都在SSD上运行,所以我不认为性能会成为一个问题。
在你的~/.vimrc
中添加这个简单的映射:
inoremap <Esc> <Esc>:w<CR>
在插入模式下,每次按下<Esc>
键时自动将当前缓冲区写入。
CursorHold
和CursorHoldI
可能会有所帮助。根据文档所述:|CursorHold| the user doesn't press a key for a while
|CursorHoldI| the user doesn't press a key for a while in Insert mode
这些事件仅在不活动后触发一次,并且取决于updatetime
变量(默认值:4000ms)。因此,您可以:
:au CursorHold <buffer> :update
在普通模式下,如果有4秒钟没有操作,则会更新当前缓冲文件(即仅在修改过的情况下保存)。
如果您希望在插入模式下获得相同的行为,请为CursorHoldI
添加自动命令。
这似乎可以解决大部分问题。你是否有某些特定的问题需要避免?在输入200个字符或者四秒钟内没有输入时,会更新交换文件