找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2262

积分

0

好友

318

主题
发表于 昨天 04:22 | 查看: 10| 回复: 0

Vim备忘录卡通图标

作为一名运维工程师,你是否习惯了使用Vim编辑配置文件,却从未深入挖掘它的强大功能?Vim天生为运维场景设计,无论是处理日志、编写脚本,还是批量修改配置,都能极大提升效率。

Vim最重要的不是命令本身,而是它的“语言”模型:

操作符(Operator) + 动作(Motion) = 编辑行为

例如:

  • d(删除) + w(一个单词) → dw
  • c(修改) + i{(花括号内部) → ci{
  • y(复制) + ap(一个段落) → yap

一旦你理解了这个模型,命令就不再需要死记硬背,而是可以自然组合。这对运维工作尤其关键,因为你经常需要面对结构化文本的批量操作,比如处理配置块、日志段或JSON/YAML文件。

一、保存与退出

命令 作用说明
:w 保存当前文件
:wq / :x / ZZ 保存并退出
:q 退出(有未保存修改会失败)
:q! / ZQ 强制退出,不保存
:update 仅在文件被修改时才写盘
:w !sudo tee % 无权限文件用 sudo 保存(非常常用)
:cq 以非 0 状态码退出 Vim(取消 git rebase、shell vi 模式等)

二、光标移动

基础方向与行内移动

命令 说明
h j k l 左 下 上 右
0 / ^ 行首 / 第一个非空字符
$ 行尾
gm 行中间
gg / G 文件首 / 文件尾
{n}G 跳转到第 n 行

按“语义”移动

命令 说明
w / b 按单词前进 / 后退
e 到单词结尾
{ / } 上一个 / 下一个段落(配置块、日志块)
% {} () [] 之间跳转
f{c} / t{c} 行内快速定位字符

三、屏幕滚动与跳转历史

命令 说明
zz 当前行居中
zt / zb 当前行到屏幕顶部 / 底部
Ctrl-d / Ctrl-u 下 / 上滚动半屏
Ctrl-f / Ctrl-b 下 / 上滚动整屏
Ctrl-o / Ctrl-i 跳转历史 后退 / 前进
`` 回到上一次跳转位置
`. 回到上一次修改位置

四、插入与编辑

进入插入模式

命令 说明
i / a 光标前 / 后插入
I / A 行首 / 行尾插入
o / O 下 / 上新建一行
R 替换模式(覆盖输入)

撤销与重复

命令 说明
u 撤销
Ctrl-r 重做
. 重复上一次修改(神器)

五、删除 / 修改 / 替换

命令 说明
x / X 删除光标处 / 前一个字符
dd 删除整行
D / d$ 删除到行尾
dw 删除一个单词
cc 整行替换
ciw 修改当前单词
caw 修改整个单词(含空格)
xp 交换相邻字符(修 typo)
>> / << 右 / 左缩进
== 重新缩进当前行

六、复制、粘贴与寄存器

命令 说明
yy 复制整行
{n}yy 复制 n 行
yw / yiw 复制单词
p / P 光标后 / 前粘贴
"+p 使用系统剪贴板
"0p 粘贴最近一次 yank 的内容
"_dd 删除但不污染剪贴板

删除操作尽量用 "_ 前缀,避免覆盖寄存器中的重要内容。


七、VISUAL 模式

命令 说明
v 字符选择
V 行选择
Ctrl-v 块选择(列操作)
vi{ / va{ 选中花括号内部 / 整块
vi" / va" 选中字符串
gv 重新选择上一次选区

典型运维场景

  • 批量加/删注释
  • 对齐配置文件中的配置项
  • 多行变量同时修改

八、搜索与替换

命令 说明
/pattern / ?pattern 向前 / 向后搜索
n / N 下一个 / 上一个匹配
* / # 搜索光标下的词
:noh 取消高亮

替换命令

命令 说明
:s/old/new/ 当前行替换一次
:%s/old/new/g 全文件替换
:%s/old/new/gc 全文件替换(确认)
:g/pat/d 删除所有匹配行
:v/pat/d 删除不匹配的行
:%s/\s\+$//e 删除行尾空格

九、多文件操作

命令 说明
:vimgrep /pat/ **/* 在项目中搜索
:copen 打开 quickfix
:cn / :cp 下一个 / 上一个匹配
:cfdo %s/a/b/g 对所有匹配文件执行替换
:wall 保存所有文件

十、宏

命令 说明
qa 开始录制宏到 a
q 停止录制
@a 执行宏
{n}@a 执行 n 次
@@ 重复上一个宏

十一、窗口、分屏与标签页

命令 说明
:sp / :vsp 横向 / 纵向分屏
Ctrl-w h/j/k/l 窗口间移动
Ctrl-w o 只保留当前窗口
:tabnew 新标签页
gt / gT 下 / 上一个标签

掌握这些核心命令,能让你在运维工作中游刃有余。如果想探索更多命令行工具和系统管理技巧,可以到云栈社区的相应板块交流学习。




上一篇:计算机硬件系统五大核心组件:CPU、总线、I/O、存储器与处理器的协同工作原理
下一篇:C++中std::shared_ptr循环引用的5个典型场景与解决方案
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-14 14:15 , Processed in 0.288005 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表