1. 删除字符
<普通模式>
x: 删除光标下的字符
dd: 删除一整行,包括换行符
J: 删除当前行的换行符,在当前行的任意地方执行都可以
2. 撤销与烦撤销
<普通模式>
u: 撤销最近的一次操作,连续执行将连续撤销
U: 行撤销,撤销最近一次对一行的所有修改
Ctrl+R: 反撤销,对u(小写)进行的撤销进行反撤销, (对U(大写)的无效?连按也无效?)
3. 进入编辑模式
<普通模式>
i: 进入编辑模式,开始位置位光标所在字符前面
a: 进入编辑模式,开始位置为光标所在字符后面
o(小写): 进入编辑模式,并在光标所在行的下面插入新的一行
O(大写): 进入编辑模式,并在光标所在行的上面插入新的一行
4. 退出Vim
<普通模式>
“ZZ”: 保存并退出
“:wq”: 保存并退出
":q!" : 不保存,退出
5. 查看帮助
<普通模式>
“:help”: 打开帮助文档窗口,用退出普通文档的方式可以退出帮助文档+
Ctrl+](中括号): 跳转到超链接(帮助文档中形如"|... |"的地方为超链接)
Ctrl+T: 跳转到上一个标签所在地
Ctrl+o: 跳转到上一个编辑的地方,可能会跳转到其他的文档
":help {option}": 显示指定操作的帮助文档
":help Exx": 显示错误码的帮助文档,xx为错误码
6. 快捷移动
<普通模式>
w: 向前移动到词结尾的下一个字符
e: 向前移动到词的结尾
b: 向后移动到词的开头
ge: 向后移动到前一个词的结尾
$: 移动到行尾
^: 移动到该行第一个非空字符
0(数字): 移动到该行第一个字符
fx: 向前移动到本行下一个字符"x"
Fx: 向后移动到本行前一个字符"x"
%: 当前光标不在括号上(各种括号),如果本行存在存在括号字符,则向前移动到第一个括号上
当前光标在括号上,则移动到与该括号匹配的括号上(可以跨行)
nG: 移动到该文件的第n行
gg: 移动到该文件的第1行
H: 移动到当前屏幕的第一行
M: 移动到当前屏幕的中间一行
L: 移动到当前屏幕的最后一行
Ctrl+U: 向下滚动半屏(上半屏显示出来)
Ctrl+D: 向上滚动半屏(下半屏显示出来)
7. 确定当前行
<普通模式>
Ctrl+G: 显示当前光标所在位置详细信息
":set number": 显示行号(短命令: ":set nu")
":set nonumber": 不显示行号(短命令: ":set nonu")
":set ruler": 实时显示光标所在位置信息(右下角)
8. 简单查找
<普通模式>
"/xxx": 从当前光标位置开始,向下查找字符串"xxx"
"?xxx": 从当前光标位置开始,向上查找字符串“xxx”
n: 继续刚才的查找,同向
N: 继续刚才的查找,反向
":set ignorecase": 查找时不匹配大小写
“:set noignorecase”: 查找时匹配大小写
*: 将光标下的单词作为查找目标,会在左下角显示"/\<xxx\>"
其中"\<"表示只匹配单词头,"\>"表示只匹配单词尾
":set hlsearch": 高亮查找结果
":set nohlsearch": 取消高亮
":nohlsearch": 取消当前查找结果的高亮,如果已":set hlsearch"则下次查找仍然会高亮
":set incsearch": 边输入边查找,并高亮查找结果,但不会真正跳转,输入<Enter>才会跳转
":set noincsearch": 取消边输入边查找
":set wrapscan": 循环查找,到文件结尾后再从文件头开始查找,反之亦然
":set nowrapscan": 不循环查找,到文件尾或文件头即结束查找
特殊字符:* [ ] ^ % / \ ? ~ $, 如果要查找的字符串包含这些特殊字符则需要在这些字符前加上"\"
--转自