学习中心/工程实践/Linux/Linux 4:Vim,改一段不用鼠标
· Linux · 4 · 编辑
Linux 4:Vim,改一段不用鼠标
dw、ciw、可视、/ 和 n、:%s、. 重复。不要删整行再打。

改一段,不要删整行再打
进出会了。这一节是改得动:动作 + 范围、可视、查找替换、重复。改 nginx 配置、改 unit,应该不用鼠标,也不用把一行删掉重敲。
- 动作d c y
- 范围w $ iw
- 找/ n
- 替:s
1. 动作加范围
Normal 里多数改动是「干什么 + 动到哪」。d 删,c 改(删完进 Insert),y 复制。后面跟一个动作:w 到下一个词,$ 到行尾。
- 键删到下一个词。de 删到这个词尾
dw - 键删到行尾。D 是同一件事
d$ - 键改这个词。删完已经在 Insert
cw - 键改光标所在这个词,不含周围空格。改配置项常用
ciw - 键删整行。cc 改整行,yy 复制整行
dd
前面可以加数字:3dd 三行,2cw 两个词。先想范围,再按动作。
2. 可视
- 键按字符选。再 hjkl 或 w 扩选,然后 d / y / c
v - 键按行选。搬一块配置用这个
V - 键按列选。改一列注释时才用,先不必熟
Ctrl+v
选错了 Esc。选完 > 整块缩进,< 反缩进。= 按语法粗排,对配置文件有时管用。
3. 行内跳
- 键本行向右跳到下一个分号。F 反方向。; 重复,, 反向重复
f; - 键跳到 ) 的前一个字符。改括号里的参数常用
t) - 键在配对的 () {} [] 之间跳。先把光标放在其中一个上
%
4. 查找
- 令向下找。回车后 n 下一个,N 上一个
/listen - 令向上找
?listen - 键找光标下这个词。# 向上
*
找不到会回卷到文件头,左下角会提示。:set hlsearch 高亮命中,:noh 暂时关掉高亮。:set ignorecase 大小写不敏感,配 :set smartcase 更好:全小写才忽略大小写。
5. 替换
- 令只改当前行第一处
:s/old/new/ - 令当前行全部
:s/old/new/g - 令全文。c 是每一处问你。先 c,确认再去掉
:%s/old/new/gc
斜杠在内容里就换分隔符::s#/var/www#/opt/app#g。替换前先 /old 看会命中谁。Vim 的正则和 grep 不完全一样,先当「普通字」用。
6. 重复
- 键重复上一次改动。cw 改一个词,到下一处再 .
. - 键替换光标这一个字符,仍留在 Normal。R 是连续替换
r - 键把下一行接到这一行后面
J
. 比宏轻。同一处改法要做十次,先做好一次,n 找到下一处,再 .
7. 缩进和注释
- 键这行右移一档。<< 左移。前面加数字:4>>
>> - 键若装了注释插件才有。没有就 V 选中,I# Esc。先会可视再 I
gcc
不要在这一节装插件。# 或 // 用可视块 Ctrl+v 选列,I 插入,Esc 一次填一列,这已经够改配置。
这块过关:ciw、d$、/ 加 n、:%s 带 c、. 能重复。下一节才是多文件、宏、vimrc。