vi,vim常用操作
Easul Lv6

选中

折叠代码块 复制代码
1
2
3
4
v           从当前光标开始复制,光标经过位置都可以选中.再次按v取消选中
V 光标从当前行开始,光标经过行被选中.再次按V取消选中
CTRL + v 从当前光标开始,选中光标起点与终点构成矩形区域.再次CTRL + v取消选中
ggVG 选中所有文字。gg跳到行首,V从当前位置开始以行选中,G跳到末尾

删除

折叠代码块 复制代码
1
2
3
4
d           删除选中区域
dd 删除当前行
x 删除当前光标所在字符
J 删除光标所在本行与上一行的换行符

复制(下边的反斜杠都是转义字符)

折叠代码块 复制代码
1
2
3
y           复制选中区域到寄存器
yy 复制当前行
\+y 复制到系统剪贴板(VIM的寄存器)

粘贴(下边的反斜杠都是转义字符)

折叠代码块 复制代码
1
2
p           从寄存器取出粘贴
\+p 从系统剪贴板粘贴

撤销

折叠代码块 复制代码
1
2
u           撤销上一次操作
CTRL + r/U 反撤销,恢复

追加

折叠代码块 复制代码
1
2
3
4
i           在当前光标之前插入文本(进入编辑模式)
a 在当前光标之后插入文本(进入编辑模式)
o 在当前行下边插入一行(进入编辑模式)
O 在当前行上边插入一行(进入编辑模式)

命令计数(重复执行操作)

折叠代码块 复制代码
1
2
3
4
3a!         在当前光标后插入3个!
3x 从当前光标处删除3个字符
1$ 将光标移动到当前行行尾
2$ 将光标移动到下一行行尾

组合命令

折叠代码块 复制代码
1
dw          删除一个单词

移动

折叠代码块 复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
k           向上移动一行
nk 向上移动n行
b 将光标向前移动到每个单词首字符
w 将光标向后移动到每个单词首字符
$ 移动光标到当前行尾
^ 移动光标到当前行第一个非空白字符(不能使用计数)
0 将光标移动到当前行第一个字符(不能使用计数)
G 移动到最后一行
`` 回到上次起跳的位置(只回到上一次,无法多次回跳)
gg 移动到第一行
33G 移动到第33行
% 移动光标到当前括号匹配的另一个括号的位置
50% 移动光标到文档中间
90% 移动光标到文档90%位置
100% 移动光标到文档末尾
M/H 将光标移动到中间行
L 将光标移动到末尾行
CTRL + U 文本向上滚动半屏
CTRL + D 文本向下滚动半屏
CTRL + E 文本向上滚动一行
CTRL + Y 文本向下滚动一行
CTRL + F 文本向前滚动一屏
CTRL + B 文本向后滚动一屏
CTRL + O 回到上次光标所在位置(每次退回一次)
CTRL + I 回到下次光标所在位置(每次前进一次)

退出

折叠代码块 复制代码
1
2
3
ZZ          退出并保存当前文件
:q! 放弃修改当前文件,强制退出
:e! 放弃修改当前文件,并重新打开

查找

折叠代码块 复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
fx          从当前位置,在当前行查找下一个字符x.光标停在搜索字符上
3fx 从当前位置,在当前行查找第三个字符x.光标停在搜索字符上
tx 从当前位置,在当前行查找下一个字符x.光标停在搜索字符前一个字符
3tx 从当前位置,在当前行查找第三个字符x.光标停在搜索字符前一个字符
Fx 从当前位置,在当前行查找下上个字符x.光标停在搜索字符上
3Fx 从当前位置,在当前行查找上三个字符x.光标停在搜索字符上
Tx 从当前位置,在当前行查找上一个字符x.光标停在搜索字符后一个字符
3Tx 从当前位置,在当前行查找上三个字符x.光标停在搜索字符后一个字符
/xxx 向下搜索字符串xxx
使用n查找该字符串下次出现位置,3n查找从当前位置第三次出现该字符串的位置,
使用N查找该字符串上次出现位置,3N查找从当前位置上三次出现该字符串的位置,
?xxx 向上搜索字符串xxx
使用n查找该字符串上次出现位置,3n查找从当前位置上三次出现该字符串的位置
使用N查找该字符串下次出现位置,3N查找从当前位置第三次出现该字符串的位置,
* 取当前光标所在单词进行正向搜索(会搜索到包含该字符串的位置)
# 取当前光标所在单词进行反向搜索(会搜索到包含该字符串的位置)
3* 取当前光标所在单词进行正向搜索,找寻第三次出现位置
3# 取当前光标所在单词进行反向搜索,找寻上三次出现位置

查找的匹配原则

折叠代码块 复制代码
1
2
3
4
5
6
/the\>      查找时匹配一个单词的结束处(只匹配the,不匹配there)
/\<the 查找时匹配一个单词的开始处(只匹配the,不匹配there)
/^the 查找时只找行首有该单词的位置
/the$ 查找时只找行尾有该单词的位置
/c.m 查找所有cxm的单词(x为任意字符)
/com\. 查找时添加转义字符\

冒号操作

折叠代码块 复制代码
1
2
3
4
5
6
7
8
9
:set number         在每行前显示行号
:set nonumber 取消显示每行行号
:set ruler 在vim右下角显示当前光标位置
:set noruler 取消在vim右下角显示当前光标位置
:set ignorecase 搜索时查找内容忽略大小写
:set noignorecase 搜索时查找内容不忽略大小写
:set hlsearch 显示搜索的高亮显示
:set nohlsearch 取消显示搜索的高亮显示
:nohlsearch 去掉当前高亮显示

参考

 评论
来发评论吧~
Powered By Valine
v1.5.2