文章

VIM 基本快捷键手册

1. 基本移动

  • h - 左移光标

  • j - 下移光标

  • k - 上移光标

  • l - 右移光标

  • 0 - 移动到行首

  • $ - 移动到行尾

  • w - 移动到下一个单词开头

  • e - 移动到单词末尾

  • gg - 跳转到文件首行

  • G - 跳转到文件末行

  • 数字G - 跳转到指定行

2. 编辑模式切换

  • i - 在光标前插入

  • a - 在光标后插入

  • o - 在当前行下方新开一行并插入

  • O - 在当前行上方新开一行并插入

  • A - 在行末插入

  • R - 进入替换模式

  • <ESC> - 返回普通模式

3. 删除操作

  • x - 删除光标所在字符

  • dw - 删除一个单词

  • d$ - 删除至行尾

  • dd - 删除整行

  • 数字dd - 删除多行

4. 复制粘贴

  • yy - 复制当前行

  • yw - 复制一个单词

  • y$ - 复制至行尾

  • p - 在光标后粘贴

  • P - 在光标前粘贴

5. 撤销/重做

  • u - 撤销上一次操作

  • U - 撤销对当前行的所有操作

  • CTRL-R - 重做被撤销的操作

6. 查找和替换

  • /文本 - 向前查找文本

  • ?文本 - 向后查找文本

  • n - 查找下一个

  • N - 查找上一个

  • :s/old/new - 替换当前行第一个匹配

  • :s/old/new/g - 替换当前行所有匹配

  • :%s/old/new/g - 替换整个文件所有匹配

  • :%s/old/new/gc - 替换整个文件所有匹配并确认

7. 文件操作

  • :w - 保存文件

  • :w 文件名 - 另存为

  • :q - 退出

  • :q! - 强制退出不保存

  • :wq - 保存并退出

8. 其他重要命令

  • CTRL-G - 显示文件信息

  • :help - 打开帮助文档

  • % - 跳转到匹配的括号

  • :set ic - 设置忽略大小写

  • :set noic - 取消忽略大小写

  • v - 进入可视模式进行选择

9. 替换操作

  • r - 替换光标所在的单个字符

  • R - 进入替换模式,可以连续替换多个字符直到按 <ESC>

10. 修改操作

  • ce - 修改从光标到单词末尾的内容

  • c$ - 修改从光标到行末的内容

  • cw - 修改一个单词

  • cc - 修改整行

  • C - 修改从光标到行末的内容(同 c$)

11.文章对象操作

i (inside) 相关命令「a(around)命令类似」

  1. 括号相关

    • ci(:改变小括号内的内容 (Change Inside Parentheses)

    • ci[:改变中括号内的内容

    • ci{:改变大括号内的内容

    • ci<:改变尖括号内的内容

  2. 引号相关

    • ci":改变双引号中的内容

    • ci':改变单引号中的内容

    • ci`:改变反引号中的内容

  3. 删除操作

    • di(:删除小括号中的内容 (Delete Inside)

    • di[:删除中括号中的内容

    • di{:删除大括号中的内容

  4. 复制操作

    • yi(:复制小括号中的内容 (Yank Inside)

    • yi[:复制中括号中的内容

    • yi{:复制大括号中的内容

  5. 选择操作

    • vi(:选择小括号中的内容 (Visual Inside)

    • vi[:选择中括号中的内容

    • vi{:选择大括号中的内容

记住:

  1. i 表示"inside",只处理括号内的内容

  2. a 表示"around",会包含括号本身

  3. 这些命令可以和 c(change), d(delete), y(yank/copy), v(visual select) 组合使用

f 命令(查找命令)

  • f字符:向右查找到指定字符(Find)

  • F字符:向左查找到指定字符

  • t字符:向右查找到指定字符前一个位置(Till)

  • T字符:向左查找到指定字符后一个位置

  • ;:重复上次的查找命令

  • ,:反向重复上次的查找命令

12.其他

  • :sp - 水平分割窗口

  • :vsp - 垂直分割窗口

  • :set number - 显示行号

  • :set relativenumber - 显示相对行号

  • >> - 向右缩进当前行

  • << - 向左缩进当前行

  • . - 重复上一次修改

  • J - 将下一行追加到当前行末尾

命令组合规律

在 VIM 中,许多命令可以组合使用,遵循以下格式:

[数字] 操作符 动作

例如:

  • 2dd - 删除两行

  • 3dw - 删除三个单词

  • 2ce - 修改两个单词

常用操作符

  • d - 删除

  • c - 修改

  • y - 复制

  • v - 可视选择

常用动作

  • w - 单词

  • $ - 行末

  • 0 - 行首

  • e - 单词末尾

使用建议

  1. 循序渐进:先掌握基本的移动和编辑操作

  2. 多加练习:通过实际编辑加深记忆

  3. 善用组合:理解命令组合的规律

  4. 形成肌肉记忆:经常使用直到形成习惯

  5. 使用 vimtutor:VIM 自带的教程非常有帮助

记住:VIM 的强大之处在于其命令的组合性,掌握了基本规律,就能举一反三,创造出更多高效的编辑方式。

License:  CC BY 4.0