模式
- 普通模式(正常模式):
vim file.txt进入默认就是普通模式,在其它模式下按Esc进入普通模式,执行命令、移动光标等。 - 插入模式: 在普通模式下,按
i进入插入模式,开始输入或修改文本。 - 命令行模式: 在普通模式下,按
:进入命令模式,保存文件、退出Vim 等操作。
光标移动
h,j,k,l: 分别向左、下、上、右移动一个字符。gg: 快速移动到文件的第一行。G: 快速移动到文件的末尾行。0(零): 或者^移动到当前行的行首。$(美元符): 移动到当前行的行尾。w(word): 移动到下一个单词的开头。:行号: 跳转到指定行。
文本编辑
i: 在光标当前位置插入文本。a: 在光标下一个位置插入文本。o: 在当前行的下方插入一个新行。dd: 删除当前行。yy: 复制(yank)当前行。p: 粘贴内容。
撤销
u: 撤销上一步操作。Ctrl + r: 重做被撤销的操作。
文件保存与退出
:wq或ZZ: 保存文件并退出:q!: 强制退出,不保存修改:w: 保存文件:q: 退出Vim
翻页
Ctrl + d: 将光标向下翻半屏,通常每次翻屏12行Ctrl + u: 将光标向上翻半屏,通常每次翻屏12行Ctrl + f: 将光标向下翻满屏,通常每次翻屏24行Ctrl + b: 将光标向上翻满屏,通常每次翻屏24行
查找
:/string: 从文件首部开始查找到尾部;按 n 键可以跳到下一个,N 上一个,另外按 / 键后,按上下键可以找到以前查找的记录,同样的也有记录:?string: 同上,从当前光标向文件首部查找
替换
:s/word1/word2/g: 当前行替换 word1为 word2:%s/word1/word2/g: 全文替换 word1为 word2
其它底线命令
:set nu: 显示行号 也可以输入 set number:set nonu: 取消行号:set ai/noai: 开启/关闭自动缩进
删除
x # 删除光标处字符
X # 删除光标前字符
dd # 删除行
5dd # 删除5行
# 删除行范围 :[start],[end]d
:3,5d # 删除 3-5 行
使用字符来指定范围:
.-当前行。$-最后一行。%-所有行。 例子::.,$d-从当前行到文件末尾。:.,1d-从当前行到文件开头。10,$d-从第十行到文件末尾。
删除全部内容
:%d:: 在命令模式下输入该命令,按Enter键,表示删除文件的所有行。ggdG:: 在普通模式下,先按gg将光标移至文件首行,然后按dG从当前行开始删除到文件末尾。
删除包含模式的行
复制
yy: 复制当前行y$: 复制到行尾p: 在光标后粘贴P: 在光标前粘贴"+y: 选中内容后再依次按"+y,复制到系统剪贴板
全选复制
ggyG: 全部复制(只能在 vim 中粘贴)ggvG: 或者ggVG,全选(高亮显示)
全选后,依次按 "+y,复制到系统剪贴板
缩进(格式化)
>>: 向右缩进Ctrl + p: 向左缩进>G: 从当前行到文件末尾都向右缩进=G: 从当前行到文件末尾都向左缩进gg=G: 缩进整个文件
补全
Ctrl + n: 向后查找补全Ctrl + p: 先前查找补全
