Skip to content

vi快捷键

vi 或者更现代的改进版 vim 中,掌握一些基本的快捷键可以极大地提高编辑效率。以下是一些常用的快捷键及其功能说明:

基本模式切换

  • 进入插入模式
    • i: 在当前光标位置前插入文本。
    • I: 移动到当前行的开头并进入插入模式。
    • a: 在当前光标位置后插入文本。
    • A: 移动到当前行的末尾并进入插入模式。
    • o: 在当前行下方新开一行,并进入插入模式。
    • O: 在当前行上方新开一行,并进入插入模式。
  • 退出插入模式回到普通模式:
    • Esc: 返回到命令模式(普通模式)。

普通模式下的移动

  • 按字符移动
    • h: 向左移动一个字符。
    • j: 向下移动一行。
    • k: 向上移动一行。
    • l: 向右移动一个字符。
  • 按单词移动
    • w: 跳到下一个单词的开头。
    • b: 跳到上一个单词的开头。
    • e: 跳到下一个单词的结尾。
  • 行内移动
    • 0: 移动到当前行的行首。
    • ^: 移动到当前行的第一个非空白字符。
    • $: 移动到当前行的行尾。
  • 文件内移动
    • gg: 移动到文件的第一行。
    • G: 移动到文件的最后一行。
    • nG: 移动到第 n 行。

编辑操作

  • 删除文本
    • x: 删除当前光标下的字符。
    • dw: 删除从光标位置到下一个单词开始的所有字符。
    • dd: 删除整行。
    • d$: 删除从当前位置到行尾的所有字符。
    • D: 等同于 d$
    • dG: 删除从当前行到文件末尾的所有行。
    • dgg: 删除从当前行到文件开头的所有行。
  • 撤销和重做
    • u: 撤销上次操作。
    • Ctrl + r: 重做被撤销的操作。

查找与替换

  • 查找
    • /pattern: 向下搜索指定模式。
    • ?pattern: 向上搜索指定模式。
    • n: 查找下一个匹配项(方向与最近的一次 /? 相同)。
    • N: 查找上一个匹配项。
  • 替换
    • :s/old/new/: 替换当前行第一个匹配项。
    • :s/old/new/g: 替换当前行所有匹配项。
    • :%s/old/new/g: 替换整个文件中所有匹配项。
    • :%s/old/new/gc: 替换整个文件中的所有匹配项,并逐个确认。

其他有用快捷键

  • yy: 复制(yank)当前行。
  • p: 在光标之后粘贴复制的内容或删除的内容。
  • P: 在光标之前粘贴复制的内容或删除的内容。
  • .: 重复最后一次修改操作。