1、vim编辑器的模式转换
vim编辑器有三种模式:命令模式,编辑模式,末行模式,三种模式相互转换的方式如上图所示,其中插入模式无法直接进入到末行模式;
2、vim的主要命令
1)在命令模式中使用I(大写的i)、i、A、a、O(大写的o)、o均可以进入到插入模式当中,其中的区别:
I:是在光标所在行的行首进行插入;
i:是在光标所在位置的前面进行插入;
A:是在所在行的行尾进行插入;
a:是在光标所在位置的后面进行插入;
O:是在光标所在行的上面生成一条空行,从行首开始插入;
o:是在光标所在行的下面生成一条空行,从行首开始插入;
如下图:
2)yy:复制整行。在命令模式下,在光标所在行连按两次yy可以复制该行的整行内容;
3)n(数字)yy:复制光标所在行及其后面n-1行的内容(共n行),如4yy,复制当前行在内的向下4行内容;
4)p:在使用了 yy命令进行复制后,直接按p可以粘贴复制的内容(会复制到光标所在行的下方);
5)dd:在命令模式下,在某行按下dd,可以删除光标所在行的整行内容;
6)n(数字)dd:删除光标所在行及其后面n-1行的内容(共n行),如4dd,删除当前行在内的向下4行内容;
7)dd+p/ndd+p:dd的命令实际上是执行了剪切的操作,因此在执行了dd或者ndd后,再在光标所在行按下p后,
仍然可以复制到当前行的下一行;
8)h 光标向前移动??;
l(小写的L)光标向后移动??;
j光标向下移动??;
k光标向下移动??;
9)H:光标会定位到当前屏幕显示内容的第一行的行首;
M:光标会定位到当前屏幕显示内容的中间行的行首;
L:光标会定位到当前屏幕显示内容的最后一行的行首;
10)ctrl+b:向上翻一屏;
ctrl+f:向下翻一屏;
ctrl+u:向上翻半屏;
ctrl+f:向下翻半屏;
11)n(数字)G:光标快递定位到第n行的行首;
G:光标快速定位到整个文件最后一行的行首;
gg:光标快速定位到整个文件第一行的行首;
12)w:以单词为单位,光标跳到下一个单词的首字母;
b:以单词为单位,光标跳到上一个单词的首字母;
13)D:剪切(删除)该行光标所在位置一直到该行行尾的所有内容;
d0:剪切(删除)该行光标所在位置一直到该行行首的所有内容;
dw:删除光标所属的整个单词;
14)u:撤销刚刚的操作;
ctrl+r:反撤销;
15)x:一次删除一个字符,往后删,相当于windows的delete键;
X:一次删除一个字符,往前删,相当于windows的baskspace键;
16)v:配合上下左右命令实现字符的选中;
V:配合上下左右命令实现整行的选中;
17)>>:向右缩进(mac好像是shift+>);
<<:向左锁紧(mac是shift+<);
18){:光标移动到所属代码块的第一行的行首;
}:光标移动到所属代码块的最后一行的行尾;
19).:重复上一次的命令;
20)r+字符:替换光标选中的字符,只能替换一个字符;
R:可以替换光标选中字符及其后面的字符;
21)/+字符或单词:命令模式下输入/+字符或单词,可以查找字符或单词;
n:可以选择下一个匹配的字符或单词;
N:可以选择上一个匹配的字符或单词;
22):1,10s/abc/123/g:在末行模式下,将第一到第十行中,所有的abc替换为123;
:%s/abc/123/g:将该文件中所有的abc提花为123;
23):set number:显示行号;
:set nonumber:不显示行号;
24):w:保存;
:q:退出,在未修改文件内容时不报错,可以直接退出不提示;若修改了内容后执行q命令,会提示需要输入感叹号;
:wq:保存并退出;
:x:保存并退出;
:q!:强制退出,不保存;
shift+zz:在命令模式下执行此命令,等同于:wq,保存并退出。
25)在Linux命令行中输入vi test.txt + 11,可以在打开文件的同时光标在第11行闪烁。