三电铃 已经回答了一部分了。我再补充一些:
最基本的执行外部命令方法是
:!{cmd}
就会在 shell 里执行 {cmd} 这个命令。{cmd} 可以不止一条指令,管道也可以使用,比如:
:!ls | less
如果想获取某个命令的输出,方法是用 :r 指令,比如:
:r !ls
会把 ls 的输出,插入到当前缓冲区光标所在的行下。
如果当前缓冲区的内容是 bash 指令。比如你的缓冲区内容是单独一行的 ls。那么执行:
:w !bash
可以直接把缓冲区的内容送去执行。这里相当于执行一下 ls 命令。
以上是执行外部指令的一些常用方法。
其实要想截获内部命令的输出,或者将当前缓冲区的内容作为内部命令执行,会需要更多技巧。好在楼主没问。
保存文件的最基本指令是
:w
可以指定一个文件名,就相当于另存为了,比如:
:w abc.txt
会将当前文件保存成一个名为 abc.txt 的文件。
也可以用 :f abc.txt 来开辟一个新的缓冲区,并以 abc.txt 为名。
这和 :w 命令有一些区别。详细情况请自行
:h :w
:h :f
察看。
另外 :wq 或 :x 是存盘并退出(助记符是 Write and Quit 和 eXit)。
如果有多个编辑缓冲区,可以用 :wqa 或 :xa 来全部保存退出(助记符是 Write and Quit All 和 eXit All)。
鉴于存盘退出或不存盘退出使用极为频繁,分别有非冒号命令 ZZ 和 ZQ 对应存和不存盘退出。