在vim中每次编辑后保存文件

时间:2012-03-14 19:51:06

标签: vim

我一直在vim中这样做:[在插入或正常模式下做某事],Esc,:ws

我每天都这样做数百次。相反,我想失去这个习惯,并且在对缓冲区进行任何更改后立即将vim保存到文件中。

所有东西都在运行SSD,所以我不认为性能会成为一个问题。

4 个答案:

答案 0 :(得分:14)

将此简单映射添加到~/.vimrc

inoremap <Esc> <Esc>:w<CR>

INSERT 模式下的每个<Esc>上自动写入当前缓冲区。

答案 1 :(得分:3)

CursorHoldCursorHoldI可能有所帮助。根据文件:

|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变量(默认值:4000毫秒)。所以你可以:

:au CursorHold <buffer> :update

在正常模式下默认4秒不活动后,将更新当前缓冲区文件(即仅在修改后保存)。

如果要在插入模式下获得相同的行为,请为CursorHoldI添加自动命令。

答案 2 :(得分:2)

我不知道,除了编码(check out the VIM Wiki for a starting point)。出于恢复目的,VIM交换文件几乎可以满足您的要求。

来自VIM man page;

  

交换文件在输入200个字符后或更新时更新   没有输入任何东西四秒钟

似乎会抓住大多数怪癖。您是否试图避免某些特定问题?

答案 3 :(得分:1)

以下是自动保存的一个小功能:http://vim.wikia.com/wiki/Auto-save_current_buffer_periodically