1.vim
1.1 vim的模式
vim有三种主要模式:
①命令模式:使用vim刚打开进入的模式就是命令模式;
②插入模式:只有在插入模式下才可以做文字输入,按[Esc]键可退回命令模式;
③末行模式:文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,按[shift]+[:](即英文状态下的[:]键) 即可进入该模式。
图解三种模式之间的切换:
一些见解:在vs编译器里我们可以用鼠标选中任意代码,可是在Linux下鼠标并不起作用。
所以命令模式我们就可以简单理解为:其相当于我们用vs编译器鼠标选中任意代码进行注释、去注释、批量复制粘贴等一系列操作的过程;插入模式就相当于我们完完全全用键盘输入字符的过程。
1.2 vim的基本命令
1. 命令模式
我们刚开始使用 vim test.c 命令进入的模式就是命令模式:
基本操作
①按 [i/o/a] 键进入插入模式,按 [Esc] 回到命令模式;
②按 [:] 键进入底行模式。
移动光标
③h、j、k、l分别对应左、下、上、右光标移动一格;
(w——往后移动,一次移动一个单词;b——往前移动,一次移动一个单词)
键盘的↑↓←→键也能实现光标的上下左右移动是因为早期的键盘并没有这四个键。
④ [G] ——光标移动到文本最后 ;
⑤ [$] ——移动到光标所在行的“行尾”;
⑥ [^] ——移动到光标所在行的行首;
⑦ [w]——光标跳到下个字(单词)的开头;
⑧ [e]——光标跳到下个字(单词)的字尾;
⑨ [b]——光标回到上个字(单词)的开头;
⑩ [nl]——(n为数字)光标移到该行的第n个位置,如:5l,56l;
⑪ [gg]——光标移到文本开始;
⑫ [G]——光标移到文本末端;
⑬ [Ctrl]+[b]——屏幕往“后”移动一页;
⑭ [Ctrl]+[f]——屏幕往“前”移动一页;
⑮ [Ctrl]+[u]——屏幕往“后”移动半页;
⑯ [Ctrl]+[d]——屏幕往“前”移动半页;
删除文字
①[x]——每按一次,删除光标所在位置的一个字符;
②[nx]——(n为数字)例如,[6x]表示删除光标所在位置的“后面(包含自己在内)”6个字符;
③[X]——大写的X,每按一次,删除光标所在位置的“前面”一个字符;
④[nX]——(n为数字)例如,[6X]表示删除光标所在位置的“前面”6个字符;
⑤[dd]——删除光标所在行 ;
⑥[ndd]——(n为数字)从光标所在行开始删除n行;
复制粘贴
①[yw]——将光标所在之处到字尾的字符复制到缓冲区中(复制一个单词);
②[nyw]——复制n个单词到缓冲区;
③[yy]——复制光标所在行到缓冲区;
④[nyy]——例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字;
⑤[p]——将缓冲区内的字符贴到光标所在位置。
注意:所有与“y”有关的复制命令都必须与“p”配合才能完 成复制与粘贴功能。
替换
①[r]+[x]——(x为任意字符)将光标所在处的字符替换为[x];
②[n]+[r]+[x]——(n为数字,x为任意字符)将光标所在处之后的n个字符替换为x;
③[R]——进入替换模式,任意替换光标所在位置的字符,直到按下[Esc]回到命令模式;
撤销上一次操作
①[u]——撤销上一次操作;
②[Ctrl]+[r]——对撤销进行撤销;
跳至指定的行
①[ctrl]+[g]——列出光标所在行的行号;
②[nG]——例如:[3G]表示移动光标至文本的第15行行首;
2. 末行模式
①[set nu]——输入[set nu]后,会在文件中的每一行前面列出行号([set nonu]取消行号);
②[n]——n表示数字,输入数字再按[Enter]键光标就会跳到该行;
③[/ 关键字]——先按[/]键,再输入需要寻找的字符,如果第一次找的关键字不是我们需要的,一直按[n]会往后寻找,直到找到为止;
④[? 关键字]——作用与[/ 关键字]相似,区别在于[/ 关键字]按[n]之后,光标逐级往下寻找,[? 关键字]按[n]之后,光标逐级往上寻找。
⑤[w]——保存文件;
⑥[q]——退出,如果无法离开vim,可以在[q]后跟一个[!]强制离开vim;
⑦[wq]——保存并退出,一般此键最常用;
⑧[vs+文件名]——可以实现屏幕同时出现多个文件,光标所在哪个文件,此时就正在编辑哪个界面;按[Ctrl+ww]实现光标在多个文件之间的跳转;
3.批量化注释与批量化去注释
①[Ctrl+v]进入VISUAL BLOCK模式-->②[h/j/k/l]进行区域选择-->③[I]进入插入模式-->④[//]输入//注释-->⑤[Esc]退出插入模式,此时即可实现选中区域的批量化注释;
①[Ctrl+v]进入VISUAL BLOCK模式-->②[h/j/k/l]进行区域选择-->③[d]删除注释,此时即可实现选中区域的批量化去注释;