模式 (Modes)

Vim 最核心的概念就是“模式”。它不像其他编辑器那样,你直接输入字符就会出现在屏幕上。Vim 有多种模式,每种模式都有不同的功能:

  • 普通模式 (Normal Mode):这是 Vim 的默认模式。在这个模式下,你不能直接输入文本,而是可以使用各种命令来导航、复制、粘贴、删除、查找等。大部分 Vim 的强大功能都体现在普通模式下。
  • 插入模式 (Insert Mode):在这个模式下,你可以像普通文本编辑器一样输入和编辑文本。
  • 可视模式 (Visual Mode):用于选择文本块。你可以选择字符、行或矩形块,然后对选中的内容执行操作(如复制、删除)。
  • 命令行模式 (Command-line Mode / Ex Mode):用于执行更复杂的命令,例如保存文件、退出 Vim、查找替换、执行外部命令等。通常以 : 开头。

模式切换:

  • 从普通模式进入插入模式:
    • i:在当前光标位置前插入
    • a:在当前光标位置后插入
    • o:在当前行下方插入新行
    • I:在当前行首插入
    • A:在当前行尾插入
    • O:在当前行上方插入新行
  • 从插入模式、可视模式或命令行模式返回普通模式:
    • Esc (或 Ctrl-[)

普通模式

导航:

  • h:左移一个字符
  • j:下移一行
  • k:上移一行
  • l:右移一个字符
  • w:跳到下一个单词的开头
  • b:跳到上一个单词的开头
  • e:跳到当前单词的结尾
  • 0:跳到行首
  • $:跳到行尾
  • gg:跳到文件开头
  • G:跳到文件结尾
  • Ctrl-f:向下翻页
  • Ctrl-b:向上翻页

编辑/删除:

  • x:删除当前光标下的字符
  • dw:删除一个单词
  • dd:删除当前行
  • d$:删除从光标到行尾的内容
  • d0:删除从行首到光标的内容
  • yy:复制当前行
  • yw:复制一个单词
  • p:在光标后粘贴
  • P:在光标前粘贴
  • u:撤销上一个操作
  • Ctrl-r:重做上一个撤销的操作
  • r:替换当前光标下的字符(进入替换模式,输入新字符后自动返回普通模式)
  • R:进入替换模式(连续替换,直到按 Esc)
  • ~:切换大小写

命令行模式

在普通模式下按 : 进入命令行模式。

  • :w:保存文件
  • :q:退出 Vim
  • :wq 或 :x:保存并退出
  • :q!:强制退出(不保存修改)
  • :e <文件名>:打开新文件
  • :sp <文件名>:水平分割窗口并打开文件
  • :vsp <文件名>:垂直分割窗口并打开文件
  • :set nu:显示行号
  • :set nonu:隐藏行号
  • :%s/旧文本/新文本/g:全局查找并替换所有“旧文本”为“新文本”
  • :/搜索内容:向下搜索
  • ?搜索内容:向上搜索
  • n:重复上次搜索(向下)
  • N:重复上次搜索(向上)