vim 使用 swpfile 的机制来防止突然断电之类的情况发生。
swpfile 默认是打开的,除非你主动设置了关闭。具体机制是,在你编辑一个文件的时候,vim 自动把你编辑的内容保存在 .swp 文件里。当你退出 vim 的时候,它再自动把 .swp 文件删除。这样你不主动保存的话,原始文件还是原来的样子,你未保存的修改就自动删除了。
如果 vim 被意外关闭,.swp 文件就不会被删除。下次在打开同一个文件的时候 vim 会自动提示你要不要恢复内容。恢复后你可以直接保存覆盖原始文件,也可以另存为其它文件以便对比和原始文件的区别。这种情况 vim 不会再自动删除 .swp 文件,在你确认所有的修改后,需要手动删除相应的 .swp 文件。
vim 用两个标准来更新 .swp 文件:一个是你的打字数主(选项 'updatecount'
控制),默认是你每打 200 个字自动保存一次。一个是空闲时间(选项 'updatetime'
控制),默认是 4 秒什么都不做自动保存一次。这样可以保证如果意外断电,你未保存的修改不会太多。
如你样调整到比如 5 秒一次,那么执行
:set?updatetime=5000就行了,单位是毫秒。重启 vim 设置会失效,想永久生效要把这个命令写在 vimrc 里。
如果你确实需要自动保存的话,可以设置
:set?autowriteall它和你想要的可能不太一样。它就是在退出 vim 或者退出编辑某个文件(比如编辑到一半又用 :e 去编辑其它文件)的时候存盘。这可能会意外覆盖原始文件,导致许多不必要的麻烦。
通常这是不需要的,因为你在离开 vim 的时候它会提示你是不是要放弃未保存的修改。如果你确实需要这样设置,可以考虑配合
:set?backup一起使用。这会在覆盖之前备份一下原始文件。备份默认不是打开的,因为打开的话所有修改的文件都会存一个副本可能并不是需要的行为。
vim 有不少用于保存的命令。
:w 是最常用的,用于保存文件,即使文件并没有被改动也会被重写一次。
:up 或者 :update 与 :w 类似,但仅在文件有改动才会保存。
保存并退出也很常用,一般有:
:wq 强制重写然后退出(关闭)当然缓冲区。如果仅有一个缓冲区的话,会退出 vim。
:x 类似 :wq,不过仅在有改动时才保存。
:wqa 和 :xa 用于保存所有该保存的缓冲区,然后退出 vim。
由于 :x 太过常用,所以有另一个快捷键 zz。如 hwguan 所说,z 要大写。
所有退出的命令当有意外不能保存的时候,是不会退出 vim 的。
Photoshop|
Dreamweaver|
SVG|
WebGL|
Visual Studio|
PowerDesigner|
Eclipse|
Git|
Apache Ant|
Atom|
Composer|
CodeSmith|
Flex|
Gradle|
Maven|
Sublime Text3|
SVN|
Tableau|
Vim|
Chrome开发者工具|
OpenGL|
Unity|
Direct3D|
用户登录
还没有账号?立即注册
用户注册
投稿取消
| 文章分类: |
|
还能输入300字
上传中....
我这鸿鹄岂知你燕雀之志哉