前文概述:Linux之小白学习vim编辑命令区-CSDN博客

有兴趣的小伙伴可以看看我之前介绍vim的文章

一、vim 怎么删除里面全部内容

在 Vim 中删除全部内容,最常用的方法是:

1. 最常用(进入普通模式)
按 gg 跳转到文件首行,再按 dG(删除到文件末尾)。

或者直接用命令 :%d 回车(更快捷)。

2. 清空并进入插入模式
按 gg 跳转首行,再按 dG,然后按 i 开始输入。

3. 强制清空(不保存)
按 gg 跳转首行,按 dG 清空,按 Esc 确保在普通模式,输入 :wq! 强制保存为空文件。

💡 温馨提示

  • 如果不小心删错,按 u 可以撤销恢复。

  • 如果想删除后立即开始写新内容,用 ggdGi 组合键最快(跳转首行 + 删除 + 进入插入模式)。

  • gg 是跳到第一行,dG 是从当前行删到最后一行,:%d 是直接删除所有行。

1.1如何只删除特定范围(比如删除第5到第10行)

  • 删除指定行范围:5,10d 回车(删除第5到第10行)

  • 删除所有空行:g/^$/d 回车

  • 删除包含"关键词"的行:g/关键词/d 回车

  • 删除不包含"关键词"的行:v/关键词/d 回车

  • 删除从当前行到文件末尾dG

  • 删除从当前行到文件开头dgg

细节要素:

如果是想撤销恢复:按 u 撤销上一步,按 Ctrl + r 重做。

如果是想保存退出:删完后按 Esc,输入 :wq 保存退出,或 :q! 不保存退出。

1.2总结你所想所要的技术干货

一、删除全部内容(最基础)

命令 说明
ggdG 跳转到首行,删除到末尾
:%d 最快捷,直接删除所有行
dG 从当前行删到末尾(需先确保在第一行)

二、删除指定行范围

命令 说明
:5,10d 删除第 5 行到第 10 行
:5,$d 删除第 5 行到文件末尾($ 表示最后一行)
:1,5d 删除第 1 行到第 5 行
:.,+5d 删除当前行到当前行后 5 行(. 表示当前行)
:.,$-3d 删除当前行到末尾前 3 行

三、删除空行

命令 说明
:g/^$/d 删除所有完全空的行
:g/^\s*$/d 删除所有空行(包括只包含空格/Tab 的行)

四、按关键词删除

命令 说明
:g/hello/d 删除所有包含 "hello" 的行
:v/hello/d 删除所有不包含 "hello" 的行(v 是 invert 的意思)
:g/^#/d 删除所有以 # 开头的行(比如删除注释)

五、在普通模式下删除(按 Esc 确保在普通模式)

命令 说明
x 删除光标所在字符
dw 删除从光标到单词末尾
d$ 或 D 删除从光标到行末
d0 删除从光标到行首
dd 删除当前整行
3dd 删除当前行及下面 2 行(共 3 行)
dG 删除当前行到文件末尾
dgg 删除当前行到文件开头
d} 删除到下一个段落
d% 删除到匹配的括号(光标在括号上时)

六、删除括号/引号内的内容

命令 说明
di( 或 di) 删除括号 () 内的内容(保留括号)
da( 或 da) 删除括号 () 及其内的全部内容
di{ 或 di} 删除花括号 {} 内的内容
di" 删除双引号 "" 内的内容
di' 删除单引号 '' 内的内容
dit 删除 HTML/XML 标签内的内容

七、删除列块(可视化模式)

命令 说明
Ctrl + v 进入可视块模式(Windows 用 Ctrl + q
移动光标选中区域 用 jklh 或方向键选择
d 删除选中的列块
I + 输入内容 + Esc 在列块前批量插入内容

八、撤销与恢复(后悔药)

命令 说明
u 撤销上一步操作
U 撤销对当前行的所有修改
Ctrl + r 重做(撤销的逆操作)

九、删除后保存/退出

命令 说明
:wq 保存并退出
:x 保存并退出(与 :wq 等效)
:q! 不保存强制退出
ZZ 保存并退出(普通模式下按)

1.2.1速记单词,速记语法:

  1. d = delete(删除)

  2. g = global(全局/跳转首行)

  3. G = 跳转到末尾

  4. gg = 跳转到开头

  5. : + 命令 = 命令行模式操作

  6. i = inside(内部),如 di" 删除引号内

  7. a = around(周围),如 da" 删除引号和内部

二、文章结尾对新人运维的建议:Vim 是运维工程师的“标准键盘”,你可以不用它写代码,但必须用它改配置。不会 Vim 的运维,在紧急故障时等于少了一只手,那么有哪些好处呢,是不是必要性的要点呢

一、核心好处(无法替代的理由)

1. 服务器上默认就有,100% 可用

  • 无论是最小化安装的 CentOS、Ubuntu,还是救援模式、容器内部,Vim 和 Vi 几乎一定存在

  • 你不可能在每台服务器上都装 VS Code 或 Sublime,网络受限时更不可能。

  • 不会 Vim = 在紧急故障时手忙脚乱

2. 故障处理时,效率就是生命

生产环境出故障时:

  • 你需要秒级修改配置文件(nginx.conf、sysctl.conf、systemd 服务文件)

  • 你需要快速查看海量日志并定位关键行

  • 你需要批量注释/取消注释配置项来测试

Vim 的 :/关键词 搜索、dd 删除、yy 复制、:%s/旧/新/g 全局替换,这些操作熟练后,修改速度比鼠标点击快 3~5 倍

3. 无需图形界面,SSH 即可操作

运维工作 90% 在终端里完成,Vim 是纯命令行工具:

  • 哪怕网速极慢(如跨国 SSH),Vim 依然流畅

  • 不会因为图形界面卡顿而耽误操作


二、对职业生涯的长期价值

价值点 说明
提升专业形象 面试或日常协作中,能熟练用 Vim 修改配置,是运维基本功的直观体现
减少出错率 Vim 的撤销树、正则替换、宏录制,让你在批量修改时可审计、可回滚,比手改安全得多
跨编辑器通用 学会了 Vim 的操作逻辑,在 VS Code、IntelliJ 等 IDE 中装个 Vim 插件,工作效率全面升级
Shell 脚本开发 写自动化脚本时,Vim 的语法高亮、缩进控制、快速跳转,让你写得更快更准

三、具体场景举例(运维高频操作)

场景 不用 Vim 的痛点 用 Vim 的爽点
修改 nginx 并重启 用 nano 或 sed,操作慢 :/server_name 秒定位,改完 :wq 直接重启
查看超大日志(10GB) less 只能看,无法编辑标记 Vim 大文件也能打开,:/ERROR 秒搜,dG 清空临时日志
批量替换 IP 地址 逐行手改,容易漏 :%s/192.168.1.1/10.0.0.1/g 一键全换
批量注释配置项 每行加 # 手敲 可视化块 Ctrl+v 选中,按 I# + Esc 批量加注释
对比两个配置文件 肉眼对比,眼瞎 :vsp 垂直分屏,:diffthis 高亮差异

四、需要学到什么程度?(运维红线)

作为运维,你不需要成为 Vim 大神,但以下操作必须闭着眼睛都能打出来

  • 必会技能

    • 打开文件:vim /etc/xxx.conf

    • 切换模式:i 插入、Esc 退出、: 命令

    • 保存退出::wq、强制退出 :q!

    • 搜索:/关键词、按 n 继续找

    • 删除行:dd、删除多行 3dd

    • 撤销:u

  • 进阶(效率技能)

    • 全局替换::%s/old/new/g

    • 复制粘贴:yy + p

    • 跳转行号::行号 或 行号+G

    • 分屏操作::sp:vsp

    • 显示行号::set nu

  • 高阶(大神技能,可选,高端玩家感兴趣)

    • 宏录制:qa 录,@a 重放(批量处理神技)

    • 正则替换高级用法

    • Vim 脚本写自动化插件

下面这个链接是我初学vim的参考站内文章,分享发给大家,好文一起看,知识一起学!!!

Linux vi/vim 命令完整版大全(最实用、直接复制可用)_vi操作命令一览表-CSDN博客

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐