vim操作
1. h j k l
2h#左移2个字符
2l#右移两个字符
2j#下移2行
2k#上移2行
-------------------------
2.x X
x#删除当前光标的1个字符,光标的位置不变
X#删除当前光标前面的1个字符,光标位置前移
------------------------
3. D
D#删除当前光标至行尾
------------------------
4.s S
s#删除当前字符,并在当前位置开始插入
S#删除当前行,在行首切换到插入模式
------------------------
5.C
C#删除当前光标至行尾,并在当前位置进入插入模式
-----------------------
6.i I a A
i#当前光标插入
I#光标移至行首,进入插入模式
a#当前光标的下一个位置插入
A#行尾插入
-----------------------
7.dw cw
dw#删除当前光标到下一个word之前的字符
cw#删除当前光标到word尾,并切换到出入模式
----------------------
8. yyp yyP
yyP#复制当前行到光标的上面
------------------------------
9.ctrl+c < > [[ ]] { }
ctrl+c <#左移一个tab
ctr+c >#右移一个tab
ctrl+c [[#光标移至第一行的第一个字符
ctrl+c ]]#光标移至最后一行的第一个字符
ctrl+c {#光标移至第一行的第一个字符
ctrl+c }#光标移至最后一行的最后一个字符
------------------------------
10. .
.#重复上次命令
------------------------------
11. 2w 2e 2b
2w#移至下2个word的首个字符
2e#移至下2个word的最后一个字符
2b#移至前2个word的第一个字符
-----------------------------
12.d0 c$ c0 d$
d0#删除当前字符到行首的所有字符
c$#删除当前行的内容重新输入
c0#删除当前字符到行首的所有字符,并切换到插入模式
d$#删除当前字符到行尾,包括当前字符,光标前移
1 cw #删除当前单词并进入插入模式
c2b == 2cb#删除2个单词从光标往前2个单词,不包含光标
c2w #从光标往后2个单词,包含光标
c$ #从光标到行尾
c0 #从光标到行首
C #删除从光标开始到行尾并进入插入模式
2 文件名可以包含空格,只要在前面加'\'即可
3 ZZ #相当于:wq + enter
4 :e! #回退至上次保存的内容
5 :w #保存不退出
6 :w file #讲编辑的结果写入新文件
7 !rm file #删除文件
8 :sh #创建一个临时shell执行命令,执行结束后用ctrl+d或exit退出临时shell
9 :pre #preserve 如果磁盘已满强制系统保存你的缓冲区
10 hjkl #左下上右
11 3h #向左移动3个字符
12 0,$ #移动到行首和行尾
13 cc #删除整行并进入插入模式
14 y2w # 复制从光标开始的2个单词,p粘贴到光标后边,P光标前
y$,y0 #复制到行尾,行首
yl yh #复制一个字符,yl当前字符,yh前一个
3yb #复制光标前的3个单词
15 2dw == d2w #删除从光标开始的2个单词,包括单词后边的空格
d0 #删除光标前到行首
de #删除到单词结尾,如果有标点符号,删除到标点符号,包括标点
dE #删除到单词结尾,到空格
3db #删除光标前的3个单词
16 r #替换一个字符
2r #替换两个字符,2ra #当前两个字符替换为a
R #可以替换文本中的任何字符
17 s #删除一个字符并进入插入模式
5s #删除5个字符并进入插入模式,更改
18 S #删除整行并进入插入模式
5S #替换5行
19
20 b #回退到前一个单词的首部
21 ~ #更换一个字符的大小写
22 D #从光标开始到行尾
23 X #删除光标前的字符
24 U #撤销一行的更改
25 "3p #把第3个缓冲区的内容放到光标的下一行,vim保留9次整行删除的内容放到9个缓冲区
26 p P #粘贴,p光标后,P光标前
27 xp #删除粘贴实现两个字符的对调
28 . #重复上一个命令
29 U #撤销一行的所有操作
30 i I a A #接受数值参数,50i* #在当前光标后插入50个*
31 J #合并光标所在行和下一行
3J #合并3行
32 + #光标移动到下一行第一个字符
- #光标移动到上一行第一个字符
33 e #光标移动到单词结尾
E #光标移动到单词结尾,忽略标点符号
34 wW #往后移动一个单词,光标在词首
bB #往前移动一个单词,光标在词首
35 ctrl +
F #往下滚动一屏
B #往上滚动一屏
D #往下滚动半屏
U #往上滚动半屏
E #往上滚动一行
Y #往下滚动一行
ctrF + ctrB #在串口输出中显示淹没的编辑内容
36 5z+enter #移动到第5行
37 H L M #移动到屏幕顶部底部中央的行
38 ^ #移动到当前行的第1个非空格处
n| #移动到当前行的第n列
39
( #移动到当前句子的开头
) #移动到下一句的开头
{ #移动到当前段落的开头
} #移动到下一段落的开头
[[ #移动到当前节的开头
]] #移动到下一节落的开头
40 3)往下移动3个句子
d) #删除文本到当前句子结束
2y} #往下复制2段落文本
41 /空格 + 单词 + 空格 #搜索完整单词
42 ? #往后搜索
43 d?hello #往前删除直到hello,包括 [)
d/hello #往后删除直到hello,不包括 [)
44 ctrl+g #在屏幕底部显示,当前行号,总行号,占全文百分比
45 15G #光标移动到15行
`` #回到上次位置