Linux下的vim和gdb
vim:
vim是编译功能强大,多模式的编译器。实际中vim有很多种模式,但是常用的就三种模式:
1、正常/普通/命令模式(Normal mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到last line mode
2、插入模式(Insert mode)只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式
3、末行模式(last line mode)文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+:(即:)即可进入该模式。
其中命令模式和插入模式,命令模式和末行模式可以互相切换,但是插入模式和末行模式不能互相切换。
命令模式:常用的命令有:
shift+4=$ 行右
shift+6=^ 行左
w 向按后照单词移动
b 向前按照单词移动
shift+g=G 底部
gg 顶部
n+shift+g 跳转光标到指定行,n代表的是行号
h、j、k、l分别代表左下上右移动
yy 复制(nyy:支持对光标所在行,进行多行复制)
p 粘贴(np:支持对内容,进行多行粘贴)
dd 删除光标所在行,(ndd,删除光标所在行及其下面的行共n行)
shift+~ 文本行的大小写切换
shirt+r=R 批量化替换
r 替换光标所在的一个字符,支持nr操作
行内删除:x(删除光标所在位置)和X(shift+x,删除光标的前一个位置),支持nx 或 nX,支持p(粘贴)
u 撤销操作
ctrl+r 取消u操作
插入模式:
1、按[i]进入插入模式后是从光标当前位置开始输入文件;
2、按[a]进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
3、按[o]进入插入模式后,是插入新的一行,从该行首开始插入。
末行模式:
1、末行可通过!执行Linux命令,例如在末行输入!gcc lcl.c可对gcc进行编译生成可执行程序。
2、可以通过vs命令分屏,展示多个文件,例如:vs copy.c,则会分为两个屏幕,一个展示当前文件,一个展示copy.c,
需要注意的是:光标只有一个,即只能编辑一个文件在同一时间内,切换文件需要在命令模式下按ctr1+ww。
gdb调试:
Linux下gdb调试是通过命令行方式进行的,并且需要注意的是,在Linux中gcc/g++生成的可执行程序是release版本的,不支持调试,所以要生成对应的debug版本才可以gdb。所以,要用gdb调试,首先要进行给编译器添加-g标识以debug方式发布。例如:gcc mytest.c -o mytest -g这样生成的就是debug版本。
有一些重要的命令:
1、打断点:b 行号 形成编号
2、查断点:info b 看到编号
3、去断点:d breakpoint的编号
3、调试运行:r -- run(对应vs中的f5)
4、逐过程:n -- next(对应vs中的f10)
5、逐语句:s -- step(对应vs中的f11)
6、运行至下一个断点处:c -- continue
7、进入函数后,直接运行到将对应函数跑完:finish
8、display/undisplay:常显示(相当于vs中调试时的监视窗口,可以看到对应变量的变化)
9、until x:跳转至x行
下面看图来理解一下: