(7)代码格式化
命令 | 作用 |
>> | 当前光标所在的行右移一个Tab |
n>> | 当前光标所在的行开始往下数n行,全部右移一个Tab |
<< | 当前光标所在的行左移一个Tab |
n<< | 当前光标所在的行开始往下数n行,全部左移一个Tab |
gg=shift+g (gg=G) | 对整个文件的代码进行自动调整 |
用法演示:
右移一个Tab键,按住shift,按两下>键
五行一块右移一个Tab,5>>命令,把光标移动到要右移的内容的第一行,先按一下数字5,按住shift连按两下>即可。
代码整体调整命令gg=G,按键顺序 g g = shift+g
调整前代码
gg=G命令格式化之后代码
(8)切换到插入模式
命令 | 作用(下面的插入是指进入插入模式后把光标放在哪) |
i | 在光标前插入(如果是竖条光标表现为在光标当前位置插入,其实竖条光标对应的块状光标就是选中了竖条光标后面的一个字符) |
I (shift+i) | 在行首插入 |
a | 在光标后插入 |
A (shift+a) | 在行尾插入 |
s | 删除光标后的元素,并进入插入模式 |
S (shift+s) | 删除当前行的内容,并把光标放在行首进入插入模式 |
o | 在光标所在行的下一行新开辟一行,并在行首插入 |
O (shift+o) | 在光标所在行的上一行新开辟一行,并在行首插入 |
s命令的演示
通过对比可以看到,竖条光标后面的字符没了,并且进入了插入模式,对应的块状光标应该是光标当前选中的字符被删除并进入插入模式。
(9)切换到末行模式
命令 | 作用 |
:(冒号) | 进入末行模式,在末行模式下可以执行命令 |
进入末行模式后,最下面会显示一个冒号:
(9)其他操作命令(撤销反撤销、查看函数原型、保存退出)
① 撤销与反撤销
命令 | 作用 |
u | 撤销上一个命令,撤销刚才的操作(相当于Windows下的ctrl+z),可以理解为一些集成开发环境的后退键 |
ctrl+r | 撤销刚才的撤销,反撤销,也就是撤销刚才的 u 操作,可以理解为一些集成开发环境的前进键 |
② 进入man帮助手册
命令 | 作用 |
K (shift+k) | 把光标移动到函数处,按K进入man帮助手册 |
n K (n shift+k) | n是一个数字,表示进入man帮助手册的第n章 |
q+Enter | 退出man帮助手册 |
演示:
把光标移动到函数上,按shift+k,便可以进入man帮助手册
使用2 shift+k命令对scanf函数进入man帮助手册第二章,对库函数进入man手册第二章是进不去的,因为man的第二章是系统调用相关的,对某个函数进入man手册相应章节时应该对号入座,否则就直接shift+k不选章节。
使用3 shift+k 命令进入man手册第三章,成功进入,在左上角有数字3,F(3)表示这是man帮助手册的第三章。
③ 保存并退出
命令 | 作用 |
ZZ (shift + z z) | 保存并退出文件,直接在命令模式下敲击两个大Z即可保存并退出,相当于末行模式下的 :wq |
2. vim的插入模式(Insert mode)
插入模式就是编辑模式,没什么好讲的,就是开始对文件进行编辑,通过上下左右键可以移动光标,底部会有插入两个字提示当前在插入模式。但是,默认情况下编辑文件还是非常不方便的,比如不像集成开发环境那样可以自动补全括号,函数提示等,但是我们可以对vim进行配置,这些在后面一章讲解。
3. vim的末行模式(last line mode)
末行模式也叫底行模式,只能在命令模式下按冒号:进入,在插入模式下无法进入,进入末行 后可以在最后一行冒号的后面输入命令。
(1)保存与退出
命令 | 作用 |
w | 保存 |
q | 退出 |
wq | 保存后退出 |
x (小写) | |
q! | 强制退出(不保存) |
wq保存后退出是我们最常用的命令
(2)查找与替换
命令 | 作用 |
s/src/des | 将光标所在行的第一个src替换为des |
s/src/des/g | 将光标所在行的所有src替换为des |
%s/src/des | 整个文件每一行的第一个sec都替换为des |
%s/src/des/g | 整个文件每一行的所有sec都替换为des |
用法演示:
① s/src/des
因为这个命令是把光标所在行的第一个src替换为des,所以替换之前,一定要在命令模式下,把光标放到src处,否则执行会报错,比如要把某一行第一个int替换为char
命令模式下,先把光标移动到int处
冒号:进入末行模式,并输入命令 s/int/char,回车执行,可以看到第一个替换成char了,第二个没有替换。
② s/src/des/g
把一行所有int替换为char,同样需要在命令模式下把光标移动到相应行,否则vim不知道你要替换的字符串是哪一行的
③ %s/src/des
这个不需要在命令模式下设置光标位置,因为这个替换是对整个文件操作的,原始文件
把整个文件每一行第一个char换成int,%s/char/int,回车运行
④ %s/src/des/g
整个文件所有char替换为int,最后还会提示替换了几次,替换了几行。