千家信息网

如何从Vim中访问shell或者运行外部命令

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关如何从Vim中访问shell或者运行外部命令的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 Vim 中执行外部命令有的时候,你可能需要在 Vim
千家信息网最后更新 2026年11月01日如何从Vim中访问shell或者运行外部命令

这篇文章给大家分享的是有关如何从Vim中访问shell或者运行外部命令的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在 Vim 中执行外部命令

有的时候,你可能需要在 Vim 编辑窗口中执行外部的命令。例如,想象一下这种场景:你已经在 Vim 中打开了一个文件,并做了一些修改,然后等你尝试保存这些修改的时候,Vim 抛出一个错误说你没有足够的权限。

现在,退出当前的 vim 会话,重新使用足够的权限打开文件将意味着你会丢失所做的所有修改,所以,你可能赞同,在大多数情况不是只有一个选择。像这样的情况,在编辑器内部运行外部命令的能力将会派上用场。

稍后我们再回来上面的用例,但是现在,让我们了解下如何在 vim 中运行基本的命令。

假设你在编辑一个文件,希望知道这个文件包含的行数、单词数和字符数。为了达到这个目的,在 vim 的命令行模式下,只需要输入冒号 :,接下来一个感叹号 !,最后是要执行的命令(这个例子中使用的是 wc)和紧接着的文件名(使用 % 表示当前文件)。

:! wc %

这是一个例子:

填入的上面提及的命令行准备执行:

下面是终端上的输出:

在你看到输出之后,输入回车键,你将会退回到你的 vim 会话中。

你正在编写代码或者脚本,并且希望尽快知道这段代码或者脚本是否包含编译时错误或者语法错误,这个时候,这种特性真的很方便。

继续,如果需求是添加输出到文件中,使用 :read ! 命令。接下来是一个例子:

:read ! wc %

read 命令会把外部命令的输出作为新的一行插入到编辑的文件中的当前行的下面一行。如果你愿意,你也可以指定一个特定的行号输出将会添加到特定行之后。

例如,下面的命令将会在文件的第二行之后添加 wc 的输出。

:2read ! wc %

注意: 使用 $ 在最后一行插入, 0 在第一行前面插入。

现在,回到最开始我们讨论的一个用例,下面的命令将会帮助你保存文件而不需要先关闭文件(这将意味着没有保存的内容不会丢失)然后使用 sudo 命令重新打开。

:w ! sudo tee %

在 Vim 中访问 shell

除了可以执行单独的命令,你也可以在 vim 中放入自己新创建的 shell。为了达到这种目的,在编辑器中你必须要做的是运行以下的命令:

:shell

或者:

:sh

当你执行完了你的 shell 任务,输入 exit这将带你回到原来离开的 Vim 会话中。

要谨记的漏洞

虽然在真实世界中,能够访问的 shell 绝对符合它们的用户权限,但是它也可以被用于提权技术。正如我们在早期的一篇文章(在 sudoedit 上)解释的那样,即使你提供给一个用户 sudo 的权限只是通过 Vim 编辑一个文件,他们仍可以使用这项技术从编辑器中运行一个新的 shell,而且他们可以做 root 用户或者管理员用户可以做的所有内容。

感谢各位的阅读!关于"如何从Vim中访问shell或者运行外部命令"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

命令 文件 运行 输出 一行 内容 权限 用户 例子 时候 篇文章 编辑器 错误 面的 输入 接下来 代码 情况 意味 技术 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网高科技 科技金融是不是互联网金融 互联网科技公司的优势 智能科技公司是互联网公司吗 互联网科技公司电话 互联网科技媒体 迪茉互联网科技 狮子座互联网科技有限公司 互联网前沿科技 互联网公司会议桌创意科技软装饰 云创客互联网科技公司 随着互联网科技发展 互联网科技公司营业执照怎么办理 上海京穆互联网科技有限公司 云南省自由互联网科技有限公司 2021世界互联网领先科技成果发布 兰石爱特工业互联网科技分公司 承德科技产业互联网平台 重庆科技产业互联网有哪些 知域互联网科技有限公司官网 互联网科技产业 镁科技互联网资讯平台 海南购全球互联网科技 哈尔滨新华互联网科技学院 宁夏科技产业互联网案例 宝灵互联网科技有限公司 互联网媒体平台算高科技产业 开一家科技互联网公司需要多少钱 江苏互联网智能科技产品出厂价 利用互联网等科技手段
0