当前位置:首页>Linux>详解Linux叹号!:!vim命令与Vim中所有!用法

详解Linux叹号!:!vim命令与Vim中所有!用法

  • 2026-10-11 06:08:40
详解Linux叹号!:!vim命令与Vim中所有!用法
在 Linux 终端和 Vim 编辑器中,叹号 !是一个功能极强、极易混淆的特殊符号。很多新手始终分不清终端输入的 !vim 和 Vim 编辑器内部的 :! 到底有什么区别。本文一次性讲透终端 ! 历史命令与Vim 内部 ! 操作的全部核心用法,彻底理清二者的区别,覆盖日常运维、代码编辑高频场景。

一、终端下的 !vim:复用历史命令

首先明确:!vim 是 Bash / Zsh 终端的功能,和 Vim 编辑器本身无关。

1. 核心作用

终端中输入 !vim,含义为:从命令历史记录中,找到最近一次以 vim 开头的命令,并直接重新执行。

2. 实操示例

假设你之前执行过编辑配置文件的命令:
vim /etc/hosts
后续想要再次编辑该文件,无需重复输入完整路径,直接输入:
!vim
系统会自动复用上一条 vim 命令,等价于再次执行 vim /etc/hosts,大幅提升重复操作的效率。

3. 终端叹号通用技巧(高频必用)

终端的 ! 是通用历史命令匹配工具,不止局限于 vim,日常高频用法如下:
!ls

重新执行最近一次 ls 开头的命令

!cd

重新执行最近一次 cd 开头的命令

!!

重复执行上一条完整命令(最高频、最实用)

!$

借用上一条命令的最后一个参数

这些技巧是 Linux 运维、开发提效的核心快捷键,熟练使用可大幅减少重复输入。

二、Vim 编辑器内部的 !:两大核心场景

进入 Vim 编辑器后,在末行模式下的 ! 拥有完全不同的功能,主要分为强制操作和调用系统命令两类,是 Vim 高效编辑的关键。

1. 命令后加 !:强制保存、强制退出

常规的保存、退出命令遇到只读文件、文件修改冲突时会失效,添加 ! 即可强制执行,是服务器改配置的常用操作:
:w!

强制保存,突破只读权限,强行写入文件

:q!

强制退出,丢弃所有未保存的修改,直接退出Vim

:wq!

强制保存并退出,适配所有只读、锁定文件场景

日常修改系统配置文件、只读文件时,该组命令使用频率极高。

2. :! + 系统命令:在Vim内运行终端指令

末行模式输入 :!,可以直接调用 Shell 系统命令,无需退出 Vim,实现编辑、查文件、运维操作无缝切换,基础用法:
:!ls

在Vim内查看当前目录文件

:!pwd

查看当前文件所在路径

:!cat 文件名

快速查看其他文件内容

执行完命令后,按下回车即可回到 Vim 编辑界面,无需反复进出编辑器。

3. 进阶高阶用法:文本批量处理

这是 Vim 远超普通记事本的核心能力,可以调用系统命令批量处理文件内容,实现高效编辑:
:r !df -h

将磁盘占用查询结果,直接插入当前文件

!!sort

用sort命令自动排序当前行内容

:1,10!awk '{print $1}'

批量处理1-10行,只保留每行第一个字段

借助该功能,无需切换终端,即可完成文本筛选、排序、批量修改等复杂操作,适配代码整理、日志分析、配置批量优化等场景。

三、核心区别总结(杜绝混淆)

很多人学不会 ! 用法,核心是分不清场景,记住这两个核心场景即可彻底弄懂:
终端界面输入 !vim:属于 Shell 功能,作用是复用历史 vim 命令,和 Vim 软件本身无关;
Vim 内部输入 :!:属于 Vim 内置功能,作用是强制操作、调用系统命令处理文本。

四、总结

叹号 ! 是 Linux + Vim 体系中性价比极高的快捷键:终端中用 !vim 快速复用历史编辑命令,提升操作效率;Vim 编辑器中用 ! 实现强制保存退出、内嵌终端命令、批量文本处理。熟练掌握这些用法,能彻底摆脱繁琐的重复操作,是运维、开发人员必备的基础技能。

最新文章

随机文章