Vim 的 change
命令是编辑操作的核心,其基本格式为 c{motion}
,即"改变+动作"的组合。执行后会删除指定范围的内容并进入插入模式。
核心特点:
cw
- 改变当前单词(到空格为止)cW
- 改变大写单词(到空格分隔为止,包含标点符号)ce
- 改变到当前单词结尾cE
- 改变到大写单词结尾ciw
- 改变单词内容(不包含周围空格)ciW
- 改变大写单词内容(包含标点,不含空格)记忆技巧:小写
w
以空格和标点为界,大写W
只以空格为界
ci"
- 改变双引号内容ci'
- 改变单引号内容ci)
- 改变圆括号内容ci]
- 改变方括号内容ci}
- 改变花括号内容cit
- 改变 HTML/XML 标签内容ci<
- 改变尖括号内容cib
- 改变括号块内容ca"
- 改变双引号及其内容ca'
- 改变单引号及其内容ca)
- 改变圆括号及其内容ca]
- 改变方括号及其内容ca}
- 改变花括号及其内容记忆技巧:
i
表示 “inside”(内部),a
表示 “around”(周围)
cc
- 改变整行内容(等价于 S
)S
- 替换整行(等价于 cc
)C
- 从当前位置改到行尾(等价于 c$
)c$
- 改变到行尾c0
- 改变到行首c^
- 改变到行首第一个非空白字符s
- 改变当前字符并插入(等价于 cl
)cl
- 改变当前字符cgg
- 改变到文件开头cG
- 改变到文件末尾c}
- 改变到段落结束c/word
- 改变到下一个 “word” 匹配处cv
- 在字符可视模式下改变选中内容cV
- 在行可视模式下改变选中内容Ctrl-V
+ c
- 在块可视模式下改变选中内容cA
- 跳到行尾并插入(等价于 A
)cif
- 改变整个函数(需要相关插件支持)命令 | 含义 | 等价形式 | 助记说明 |
---|---|---|---|
c{motion} |
改变任意范围(通用格式) | - | change + 动作 |
cw |
改变当前单词(不含空格) | ce |
change word |
cW |
改变当前大写单词(空格分隔) | - | change Word(大写 W) |
ce |
改变到当前单词结尾 | - | change to end of word |
cE |
改变到大写单词结尾 | - | change to end of Word |
ciw |
改变"当前单词"内容(不含空格) | - | change inside word |
ciW |
改变"大写单词"内容(含空格) | - | change inside Word |
ci" ci' ci) ci] ci} |
改变括号/引号内的内容 | - | change inside “…” |
ca" ca' ca) ca] ca} |
改变括号/引号及其内容 | - | change around “…” |
cit ci< |
改变标签内内容(HTML/XML) | - | change inside tag |
cib |
改变括号 block 内内容 | - | change inside block |
cif |
改变整个函数(需插件) | - | change inside function |
cc |
改变整行内容 | S |
change current line |
C |
从当前位置改到行尾 | c$ |
change to end of line |
c$ |
改变到行尾 | C |
change $ (end of line) |
c0 |
改变到行首 | - | change to 0 (line start) |
c^ |
改变到行首第一个非空白字符 | - | change to ^ (first char) |
cA |
跳到行尾插入(等于A) | - | change append (to end) |
s |
改变当前字符并插入 | cl |
substitute (char) |
S |
改变整行(插入) | cc |
substitute (line) |
cl |
改变当前字符 | s |
change letter |
cgg |
改变至文件开头 | - | change to gg (top) |
cG |
改变至文件末尾 | - | change to G (bottom) |
cv /cV /Ctrl-V +c |
可视模式改变选区 | - | change visual selection |
c} |
改变到段落结束 | - | change to paragraph end |
c/word |
改变到下一个word匹配处 | - | change until/word |
第一阶段:掌握基础命令
cw
、cc
、C
、s
等常用命令第二阶段:理解文本对象
ciw
、ci"
、ci)
等inside
和 around
的概念第三阶段:组合应用
cw
和 ciw
的区别最重要的提示:change 命令执行后会自动进入插入模式,这是与删除(delete)命令的核心区别。掌握这一点,就掌握了 Vim 编辑的精髓。