Vim使用最频繁的命令之一应该是 :w

Vim命令行命令 :w:write 的缩写形式,用于将当前Vim缓冲区的内容写到磁盘文件中,即完成保存文件的操作。

别小看了这么一个简单又常见的写文件操作,合理地使用Vim命令保存文件也是一个值得深入研究的话题。Vim教程网总结了多种保存文件的Vim命令及其使用场景,供大家各取所需。

  • (1) 保存文件,即把当前缓冲区内容写入文件::w
  • (2) 强制保存文件,即便是只读文件: :w!
  • (3) 保存文件并退出::wq
  • (4) 保存文件并退出::x

:x 命令是程序员最应该使用的命令,因为如果文件没有修改,:x 保存文件时并不会修改文件的时间戳,因此不会触发重新编译;而 :wq 命令不管文件有没有被修改,都会修改时间戳,也即会触发重新编译,而这是毫无意义的。

vim-write-command

  • (5) 不保存文件,丢失所有的修改而强制退出:q!

  • (6) 将打开的所有缓冲区分别写入对应文件,即保存所有打开的文件::wall 或缩写形式 :wa。没有文件名的缓冲区会报错,只读的缓冲区不会被写入。

  • (7) 将打开的所有缓冲区分别写入对应文件,即保存所有打开的文件::xall 或缩写形式 :xa

:xa 命令与 :wa 的区别等价于 :x:wq 命令的区别

  • (8) 将当前缓冲区内容另存为 new.txt::w new.txt

  • (9) 将当前缓冲区内容另存为 new.txt::saveas new.txt 或缩写形式 :sav new.txt,如果写操作成功,则复位 ‘readonly’ 标记

  • (10) 将当前缓冲区的指定范围(range)内的内容另存为 new.txt::[range] w new.txt,关于文件范围,可以参考Vim操作范围和文件范围

  • (11) 将当前缓冲区的指定范围(range)内的内容追加到另一个文件 another.txt::[range] w >> another.txt

:w 命令缺省的 [range] 是整个缓冲区,即 1,$

  • (12) 当且仅当缓冲区内容被修改时才写入文件::update 或缩写形式 :up

:update 命令和 :w 类似,也支持指定范围和强制保存,其完整形式为::[range]up[date][!] [++opt] [>>] [file]

:Vim命令的表达形式中,[] 内的内容表示可以缺省。关于 :write 命令的更多内容,推荐阅读Vim打开和保存文件

嗯,扫一扫就可以找到小女子我啦~