
如何在vim中使用Linux命令
常见问答
在 Vim 里怎样快速执行系统命令而不用退出编辑器?
我正在编辑文件时,想临时运行一些 Linux 命令查看信息或处理内容,但不想离开 Vim。有什么常用方法可以直接在 Vim 内执行命令吗?
在 Vim 中直接调用系统命令
可以使用 Vim 的命令模式来执行系统命令。在普通模式下输入 :! 加上 Linux 命令,例如 :!ls、:!pwd、:!cat %。这样 Vim 会临时调用系统 shell 运行命令,并把结果显示出来。
能不能在 Vim 里把 Linux 命令的输出插入到当前文件中?
我希望把某个 Linux 命令的执行结果直接写进正在编辑的文本里,比如插入目录列表或系统信息,这种操作在 Vim 里能实现吗?
把命令输出写入缓冲区
可以使用 :r !命令 的方式把外部命令输出读入当前文件,例如 :r !date 会把当前时间插入到光标下方。也可以用 :r !ls 将目录内容写入到正在编辑的文档中。
在 Vim 中编辑文件时,怎样用 Linux 命令处理当前文件内容?
我想对正在编辑的文本进行排序、去重、过滤等处理,不想复制到外部终端再粘贴回来。Vim 里有没有办法直接把选中的内容交给 Linux 命令处理?
通过过滤命令处理选区内容
可以使用 Vim 的过滤功能,把内容送给外部命令处理。选中一段文本后输入 :!sort、:!grep 等命令并结合范围操作,或使用 !sort 这样的过滤方式。这样可以把选中的内容交给 Linux 命令处理后再返回到 Vim 中。
如果我想在 Vim 中保存文件时顺带执行一个 Linux 命令,该怎么做?
有时我编辑完文件后,还想立刻做一些命令行处理,比如格式化、统计或备份。有没有办法在 Vim 内完成这些联动操作?
利用 Vim 与 shell 的组合操作
可以先在 Vim 中保存文件,再用 :! 执行相关 Linux 命令处理当前文件。例如 :w 后执行 :!wc -l % 查看行数,或者用 :!cp % % .bak 进行备份。对于重复任务,还可以把命令映射到快捷键或写进 Vim 脚本中。
* 文章含AI生成内容