Vim 编写程序时,无须退出 Vim 或者新建 Terminal 窗口即可执行 Shell 命令。
在 Mac 环境开发时,可以使用 Tmux 搭配 Vim,一个窗口编写,一个窗口执行。然而线上环境往往不能安装过于复杂的开发环境,那每次都反复的进入退出很是让人烦躁,其实 Vim 中可以直接运行 Shell 命令。
执行
语法
1 | :!command |
command
可以是任何一个 Shell 命令,回车执行后,会在 Shell 中显示结果,再次回车返回 Vim。先来看个动图
读取
该模式下还可以直接把执行结果,读取到 Vim 中,这是很神奇的功能。
语法
1 | :r !command |
执行该命令后,Shell 命令结果会自动复制到当前行的下面
前面输入数字,可以复制到第 N 行的下面,比如第二行
1 | :2r !command |
写入
能读取,就能写入,使用 w
可以将制定行数的文本通过管道传给想要执行的命令
语法
1 | :n1, n2w !command |
比如我们想要将第 7 到 10 行的内容传给 wc
命令,获取行数,单词数和字符数。
1 | :7, 10w !wc |
替换
最后要说的是替换,它好像将上边两种命令结合一般,这次直接输入行数范围即可
1 | :n1, n2 !wc |
还是上面的例子,我们重新执行一次
最后提一句 :!!
可以执行上一次执行的命令,没错,就像 Shell 中一样。
直接在 Vim 中执行 Shell 命令,只是一种方式,我们还可以直接切换到 Shell 模式在执行复杂的操作。
不过今天先到这里,想要学好 Vim,一次输入太多知识不是个好习惯,还需要大量的练习来巩固它,下一章我们再来探讨怎样切换 Shell 环境。