范围 + 动作,以及重复的三个阶段
一句话总结
Vim 的 ex 命令统一由“范围 + 动作”组成;重复编辑则有点命令、模式替换和宏三个层次。
高效编辑
范围可以是单行、区间、全文、当前行或可视选择,随后接替换或对匹配行执行命令。替换时要区分每行首次匹配与全部匹配,也要分清保留匹配行和删除匹配行。后向引用可保留匹配中的部分内容。
宏本质上是把按键序列原样存进寄存器,再次回放。可靠宏应先固定起点,按内容相对移动,并在末尾移动到下一个目标。大写寄存器表示追加,可把分散的匹配行逐步收集起来。
处理日志等数据时,先用可撤销的小步骤观察结果,再决定用替换还是宏;规则稳定时批量执行,过程复杂时录制并检查宏。
原文命令与标识符
/oldName<CR> 찾는다
ciwnewName<Esc> 첫 자리를 고친다
n. 다음 자리로 가서 같은 것을 반복
:%s/\vold_(\w+)/new_\1/gc
:g/^\s*#/d 주석 줄을 전부 지운다
:g/TODO/t$ TODO 줄을 파일 끝에 모은다
:v/error/d error 가 없는 줄을 지운다(v 는 g 의 반대)
.
:5
:5,10
:%
1,$
:.
:'<,'>
s/찾을것/바꿀것/플래그
g/패턴/명령
g
:%s/old/new/
:%s/old/new/g
:g
:v
:g/ERROR/d
:v/ERROR/d
:v
\1
\2
&
qa
q
a
z
@a
:reg a
"ap
"ayy
0
f,
j
10@a
:g/prod/y A
a
:g/staging/normal I#
:normal
:%s/패턴//gn
.
ciw새이름<Esc>
n.
:%s
\v
c
%
:'<,'>
:.,+10
:g/pattern/s/.../.../
:g
.
qa
q
@a
100@a
j0
100@a
/pattern<CR>
u
:earlier 1m
:undolist
:undo <번호>
vim-power
vim-macros