Vim使用技巧-执行外部命令

简介:

vim 是十分强大的文本编辑工具,但有一些事它做不了。本文简单说说在不离开 vim 编辑器的情况下,执行 shell 命令、工具。

进入shell

  • 在 vim 中执行 :shell 或 :sh,当退出当前 shell 时,就会回到 vim;
  • 也可以使用 ctr-z 进入 shell, 然后执行 fg 回到 vim。
  • 上述功能可用于下述场景:
    • 如我们编辑了一个文件,但是发现无法保存(没有写权限),你可以先改变该文件读写权限,然后再回到 vim 保存刚刚的修改。

在vim中执行 shell 命令!

  • 我们只需要在命令前 加上 ! 就可以。
    • 如,:! sort %
      • 该命令会对当前编辑的文件(%)内容进行排序,并输出。
      • 但该命令仅对文件内容进行操作,命令不会缓存中的内容进行操作。
      • ! 通常和非交互式命令结合使用。

读取命令的输出

  • 很多人常用 vim read命令读取内容, 如::read textfile
  • 但 read还可以用于读取 shell 命令的输出,如::read ! ls | sort

使用外部命令过滤文本

  • 进入 vim visual模式,选中你想操作的文本,然后执行 shell 命令。
  • 你选中的命令会被 shell 命令的输出替换。

注:

  • 默认情况下,vim 使用系统默认使用的 shell。
  • 查看 vim 使用了哪一个 shell :set shell ?
  • 设置你想要试用的shell :set shell=/path/to/shell