Vim 修改(change)命令完整学习笔记

发布于:2025-06-15 ⋅ 阅读:(24) ⋅ 点赞:(0)

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. 学习建议

循序渐进的学习路径

  1. 第一阶段:掌握基础命令

    • cwccCs 等常用命令
    • 理解 change 与 delete 的区别
  2. 第二阶段:理解文本对象

    • 学会使用 ciwci"ci)
    • 区分 insidearound 的概念
  3. 第三阶段:组合应用

    • 结合动作命令使用
    • 在实际编辑中形成肌肉记忆

实践技巧

  • 多练习:在日常编辑中有意识地使用这些命令
  • 建立联系:理解命令背后的逻辑,而不是死记硬背
  • 渐进提升:从简单命令开始,逐步掌握复杂操作

常见错误避免

  • 不要混淆 cwciw 的区别
  • 记住 change 命令会自动进入插入模式
  • 理解大小写字母在 Vim 中的不同含义

📝 最重要的提示:change 命令执行后会自动进入插入模式,这是与删除(delete)命令的核心区别。掌握这一点,就掌握了 Vim 编辑的精髓。


网站公告

今日签到

点亮在社区的每一天
去签到