LabHub
学习 学习路径 课程

vim 与 tmux

范围 + 动作,以及重复的三个阶段

在 LabHub 中继续学习

一句话总结

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