当前位置: 首页 > backend >正文

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

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

目录

文章目录

  • Vim 修改(change)命令完整学习笔记
    • 目录
    • 1. 核心概念
    • 2. 单词级操作
      • 2.1 基础单词修改
      • 2.2 精确单词操作
    • 3. 括号和引号操作
      • 3.1 内容修改(inside)
      • 3.2 包含符号修改(around)
    • 4. 行级操作
      • 4.1 整行修改
      • 4.2 行内范围修改
    • 5. 字符级操作
    • 6. 文档级操作
    • 7. 搜索结合操作
    • 8. 可视模式操作
    • 9. 特殊命令
    • 10. 命令速查表
    • 11. 学习建议
      • 循序渐进的学习路径
      • 实践技巧
      • 常见错误避免

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改变当前单词(不含空格)cechange 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改变整行内容Schange current line
C从当前位置改到行尾c$change to end of line
c$改变到行尾Cchange $ (end of line)
c0改变到行首-change to 0 (line start)
c^改变到行首第一个非空白字符-change to ^ (first char)
cA跳到行尾插入(等于A)-change append (to end)
s改变当前字符并插入clsubstitute (char)
S改变整行(插入)ccsubstitute (line)
cl改变当前字符schange 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 编辑的精髓。

http://www.xdnf.cn/news/13402.html

相关文章:

  • [原创]X86C++反汇编02.算术指令
  • 闪回还能导致OGG同步失败
  • 生成xcframework
  • 一个获取极简风格动画素材的网站
  • Day11_刷题niuke20250610
  • CppCon 2015 学习:C++ Requests
  • Vim 插件管理:MiniBufExplorer 使用指南
  • 区块链Web3项目的开发
  • Dify 知识库深度剖析:从构建到高效应用
  • 【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
  • kotlin kmp 副作用函数 effect
  • 使用Ajax从前端向后端发起请求
  • Prometheus基础使用指南
  • 鹰盾加密虚拟机保护技术的深度解析:从指令级虚拟化到动态对抗系统
  • (LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
  • Windows cmd中文乱码解决方法(Windows控制台中文乱码、CMD乱码、控制台乱码、Command Prompt命令提示符cmd.exe乱码)
  • JxBrowser 7.43.2 版本发布啦!
  • 预训练模型 CBAM注意力
  • 【docker n8n】windows环境如何挂载
  • 【计算机组成原理 第5版】白、戴编著 第四章 指令系统 课后题总结
  • 第二章 开发板与芯片介绍
  • 慢接口优化万能公式-适合所有系统
  • 【论文阅读笔记】HaDes幻觉检测benchmark
  • GISBox如何导入Revit格式的BIM数据?
  • 案例解读:交安与建安安全员 C 证在实践中的差异
  • 电路图识图基础知识-电机顺序启动控制电路解析(二十二)
  • 期末考试复习总结-《从简单的页面开始(下)》
  • NLP学习路线图(三十八): 文本摘要
  • 3分钟配置好nacos集群(docker compose)
  • 接口测试与接口测试面试题