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: 在光标之前粘贴复制的内容或删除的内容。.: 重复最后一次修改操作。
