1.vi三种模式
一般模式:默认模式,可以删除字符或者删除整行,也可以复制粘贴数据。
编辑模式:按“i, I, o, O, a, A,r, R"等任何字母进入编辑模式。
命令行模式: 一般模式时,输入": , / , ?",可以将光标移到最下面一行,这个模式下可以查找,替换,读取,保存,显示行号,以及大量文字替换等复杂操作。
1.1一般模式下,常用按键
光标移动
| | | |
| h, j ,k l | 左,上,下,右,移动光标 |
n+h,j,k,l移动n个字符
|
|
【ctrl】+ F
|
屏幕向下移动一页
|
|
|
【ctrl】+ B
|
屏幕想上移动一页
|
|
|
n+空格
|
向后移动n个字符
|
|
|
n+回车
|
下移n行
|
|
|
0或者按键【Home】
| 行首 |
数字0
|
| $ |
行末
|
|
|
G
|
移动到文件最后一行
|
nG移到第n行
|
|
gg
| 移动到第一行 |
相当于1G
|
|
|
|
|
查找、替换
|
/word
| 向下查找 | 再按n,向下查找刚才的字符 |
|
?word
|
向上查找
|
再按N,向上查找刚才的字符
|
|
:n1, n2s/word1/word2/g
|
在n1行和n2行之间,把word1替换为word2
|
|
|
:1,$s/word1/word2/g
|
首行和末行之间,
把word1替换为word2
|
:1,$s/word1/word2/gc 替换,但需要提示comfirm
|
|
|
|
|
删除、复制、粘贴
|
x,X
|
x为向后删除字符,X大写为向前
|
nx,删除n个字符
|
|
dd
| 删除当前行 |
n+dd删除光标向下n行
|
|
d1G
|
删除光标到首行之间的数据
|
|
|
dG
|
删除光标到末行之间的数据
|
|
|
d$
|
删除光标到当前行末之间的数据
|
|
|
d0
|
删除光标直到行首之间的数据
|
|
|
yy
|
复制当前行
|
nyy,复制向下n行
|
| y1G,yG,y0,y$ | 用法类比删除操作 |
|
|
p, P
| 粘贴在光标所在行的下行/上行 |
|
|
u
|
复原前一个操作
|
|
|
【ctrl】+ r
|
重做前一次的操作
|
|
|
.
|
点号,重复前一个操作
|
|
|
|
|
|
进入插入模式
|
小写
|
大写
|
i, I
| i, 光标所在处插入 |
I, 目前所在行的第一个非空格符还是插入
|
a, A
|
a, 光标所在下一个字符开始插入
|
A, 光标所在行最后一个字符还是插入
|
o, O
| o光标所在行下一行插入新行 |
O
光标所在行上一行插入新行
|
r, R
|
r替换光标所在字符一次
|
R一直替换光标所在字符
|
1.3命令模式
常用的有:w,q,wq,wq!
set nu 显示行号
unset nu 取消行号
2.块选择(visual block)
vim具有块选择功能
按键
|
功能
|
|
v
| 字符选择,光标经过的字符地方会反白选择 |
|
V
|
行选择,光标经过的行反白选择
|
|
【ctrl】+ v |
块选择,用长方形的方式选择
|
|
y
|
反白的地方复制
|
|
d
|
反白的地方删除
|
|