保存文件
使用*:w* 和 :u 都可以保存文件,其中w代表write,u代表update的含义。
如果只是输入上述命令,则直接保存文件,当然也可以使用*:w anotherFilename*来另存为另一个新的文件。
自动保存文件
当你试图切换缓冲区或者文件时,如果你没有保存改变时Vim通常会给出错误消息。
启用切换缓冲区/文件时自动写入文件,命令如下:
1 | :set autowrite |
使用单个命令写入所有文件(这可能在宏中非常有用)
1 | :wall |
保存文件时发生的问题
- 尝试保存文件已存在,可以输入*:w! file用来覆盖现有的文件,或者:w newfile*将编辑的结果写入新的文件;
- 得到文件系统已满的消息,可以输入*:!rm junkfile来删除一个不需要的打文件,空出一些空间(在冒号后加上感叹号,然后就可以执行shell命令),或者输入:!df看看其他文件系统有没有空间,如果有,先放入其他文件系统,用:w pathname*来写入你的文件。
- 系统进入开放模式并且显示文件系统已满的消息,可以输入*:!ls /tmp来查看有无可以移除的文件,以腾出一些空间。如果有的话,可以先创建一个临时的unix shell,以便移除,直接输入:sh可以打开一个新的暂时的shell*,移除后,可以输入exit返回到vi,或者使用CTRL+Z来将vi暂停,放到后端,使用fg即可以回到vi。
- 尝试写入文件,却得到磁盘限额已满的消息,可以实时*:pre(:preserve)*的缩写,强迫系统保存你的缓冲区。