Vim 修改(change)命令完整学习笔记
目录
文章目录
1. 核心概念
Vim 的 change
命令是编辑操作的核心,其基本格式为 c{motion}
,即"改变+动作"的组合。执行后会删除指定范围的内容并进入插入模式。
核心特点:
- 删除内容 + 进入插入模式
- 与删除(delete)命令的区别:change 会自动进入插入模式
- 遵循 Vim 的"动作+操作"哲学
2. 单词级操作
2.1 基础单词修改
-
cw
- 改变当前单词(到空格为止) -
cW
- 改变大写单词(到空格分隔为止,包含标点符号) -
ce
- 改变到当前单词结尾 -
cE
- 改变到大写单词结尾
2.2 精确单词操作
-
ciw
- 改变单词内容(不包含周围空格) -
ciW
- 改变大写单词内容(包含标点,不含空格)
💡 记忆技巧:小写
w
以空格和标点为界,大写W
只以空格为界
3. 括号和引号操作
3.1 内容修改(inside)
-
ci"
- 改变双引号内容 -
ci'
- 改变单引号内容 -
ci)
- 改变圆括号内容 -
ci]
- 改变方括号内容 -
ci}
- 改变花括号内容 -
cit
- 改变 HTML/XML 标签内容 -
ci<
- 改变尖括号内容 -
cib
- 改变括号块内容
3.2 包含符号修改(around)
-
ca"
- 改变双引号及其内容 -
ca'
- 改变单引号及其内容 -
ca)
- 改变圆括号及其内容 -
ca]
- 改变方括号及其内容 -
ca}
- 改变花括号及其内容
💡 记忆技巧:
i
表示 “inside”(内部),a
表示 “around”(周围)
4. 行级操作
4.1 整行修改
-
cc
- 改变整行内容(等价于S
) -
S
- 替换整行(等价于cc
)
4.2 行内范围修改
-
C
- 从当前位置改到行尾(等价于c$
) -
c$
- 改变到行尾 -
c0
- 改变到行首 -
c^
- 改变到行首第一个非空白字符
5. 字符级操作
-
s
- 改变当前字符并插入(等价于cl
) -
cl
- 改变当前字符
6. 文档级操作
-
cgg
- 改变到文件开头 -
cG
- 改变到文件末尾 -
c}
- 改变到段落结束
7. 搜索结合操作
-
c/word
- 改变到下一个 “word” 匹配处
8. 可视模式操作
-
cv
- 在字符可视模式下改变选中内容 -
cV
- 在行可视模式下改变选中内容 -
Ctrl-V
+ c
- 在块可视模式下改变选中内容
9. 特殊命令
-
cA
- 跳到行尾并插入(等价于A
) -
cif
- 改变整个函数(需要相关插件支持)
10. 命令速查表
命令 | 含义 | 等价形式 | 助记说明 |
---|---|---|---|
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 |
11. 学习建议
循序渐进的学习路径
第一阶段:掌握基础命令
cw
、cc
、C
、s
等常用命令- 理解 change 与 delete 的区别
第二阶段:理解文本对象
- 学会使用
ciw
、ci"
、ci)
等 - 区分
inside
和around
的概念
- 学会使用
第三阶段:组合应用
- 结合动作命令使用
- 在实际编辑中形成肌肉记忆
实践技巧
- 多练习:在日常编辑中有意识地使用这些命令
- 建立联系:理解命令背后的逻辑,而不是死记硬背
- 渐进提升:从简单命令开始,逐步掌握复杂操作
常见错误避免
- 不要混淆
cw
和ciw
的区别 - 记住 change 命令会自动进入插入模式
- 理解大小写字母在 Vim 中的不同含义
📝 最重要的提示:change 命令执行后会自动进入插入模式,这是与删除(delete)命令的核心区别。掌握这一点,就掌握了 Vim 编辑的精髓。