简介:
vim 是十分强大的文本编辑工具,但有一些事它做不了。本文简单说说在不离开 vim 编辑器的情况下,执行 shell 命令、工具。
1. 进入 shell
(1)在 vim 中执行 :shell
或 :sh
,当退出当前 shell 时,就会回到 vim;
(2)也可以使用 ctr-z
进入 shell, 然后执行 fg
回到 vim。
上述功能可用于下述场景:
如我们编辑了一个文件,但是发现无法保存(没有写权限),你可以先改变该文件读写权限,然后再回到 vim 保存刚刚的修改。
2. 在 vim 中执行 shell 命令!
我们只需要在命令前 加上 !
就可以。
如,
:! sort %
该命令会对当前编辑的文件(%)内容进行排序,并输出。
但该命令仅对文件内容进行操作,命令不会缓存中的内容进行操作。
!
通常和非交互式命令结合使用。
3. 读取命令的输出
很多人常用 vim read
命令读取内容, 如:
:read textfile
但 read
还可以用于读取 shell 命令的输出,如:
:read ! ls | sort
4. 使用外部命令过滤文本
进入 vim visual
模式,选中你想操作的文本,然后执行 shell 命令。
你选中的命令会被 shell 命令的输出替换。
注:
默认情况下,vim 使用系统默认使用的 shell。
查看 vim 使用了哪一个 shell
:set shell ?
设置你想要试用的 shell
:set shell=/path/to/shell