linux编辑器的使用
vim:
vim是vi的升级版,基本可以分为三种状态:命令模式、插入模式、底行模式;
vim的基本操作:
vim test.c 就进入了去全屏编辑画面,此时是命令模式,你要切换到插入模式才可以编辑文字;
命令模式:
h j k l分别控制光标的上 、下、左、右移动;按“G”移到文章的最后,“$”移动到光标所在行的行尾,“^”移动到光标所在行的行首;gg进入到文本的开始;
删除文字:
「 x」:每按一次,删除光标所在位置的一个字符。
「 #x 」:例如,「 6x」表示删除光标所在位置的 “ 后面(包含自己在内) ”6 个字符。
「 X」:大写的 X ,每按一次,删除光标所在位置的 “ 前面 ”一个字符。
「 #X 」:例如,「 20X」表示删除光标所在位置的 “ 前面 ”20个字符。
「 dd」:删除光标所在行。
「 #dd 」:从光标所在行开始删除 # 行
复制:
「 yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「 #yw 」:复制 #个字到缓冲区
「 yy」:复制光标所在行到缓冲区。
「 #yy 」:例如,「 6yy」表示拷贝从光标所在的该行 “ 往下数 ”6行文字。
「 p」:将缓冲区内的字符贴到光标所在位置。
注意:所有与 “y” 有关的复制命令都必须与 “p” 配合才能完成复制与粘贴功能。
替换:
「r 」:替换光标所在处的字符。
「 R」:替换光标所到之处的字符,直到按下「 ESC 」键为止。
撤销上一次操作:
「u 」:如果您误执行一个命令,可以马上按下「 u 」,回到上一个操作。按多次 “u” 可以执行多次回复。
更改:
「 cw」:更改光标所在处的字到字尾处
「 c#w 」:例如,「 c3w」表示更改 3 个字
跳到指定的行:
「 ctrl」 + 「g 」列出光标所在行的行号。
[ #G」:例如,「 15G 」,表示移动光标至文章的第 15 行行首。
Ctrl+f 向前翻屏
Ctrl+b 向后翻屏
Ctrl+d 向前翻半屏
Ctrl+u 向后翻半屏
插入模式:
怎么切换到插入模式呢?在命令行模式下按下字母“i”或“a”即可,按“o”也可以但插入的是一整行;按ESC退出插入模式进入命令模式;
区别:但 i 进入后是指到光标的位置,而 a 是指到光标的下一个位置;
底行模式:
在命令模式下,按shift+:就进入了底行模式,w保存当前文件;wq存盘并退出;q!不存盘强制退出;
A. 列出行号:
「 set nu」:输入「 set nu 」后,会在文件中的每一行前面列出行号;
B. 调到文件中的某一行:
「 # 」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字 5 ,再回车,就会跳到文章的第 5 行。
C. 查找字符:
「/ 关键字」:先按「 / 」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「 n 」会往后寻找到您要的关键字为止。
「 ? 关键字」:先按「 ?」键,再输入您想寻找的字符,如果第一次找的
关键字不是您想要的,可以一直按「 n 」会往前寻找到您要的关键字为止。
/ 和 ?查找有和区别?
/ :
?:
gcc/g++的使用
编译的过程:a.预处理(进行宏替换)b.编译(生成汇编)c.汇编(生成机器可识别的代码)d.连接(生成可执行文件或库文件)
预处理(进行宏替换):
预处理过程还会删除程序中的注释和多余的空白字符;预处理指令是以#开头的代码行;
例如:gcc –E hello.c –o hello.i
选项 “-E”进行查看 , 该选项的作用是让 gcc 在 预处理结束后停止编译过程 。
选项 “-o”是指目标文件 ,“.i” 文件为已经过预处理的 C 原始程序。
编译(生成汇编):
gcc首先检查代码的规范性,是否有语法错误等,检查无误后gcc吧代码翻译成汇编语言;
把 .i 文件转换为.s 文件;
例如:
gcc –S hello.i –o hello.s
汇编的过程:(生成机器可识别的代码)
把 .s 文件转为目标文件.o;
gcc -C test.s -o test.o;
连接(生成可执行文件或库文件)
gcc test.o -o test;
gdb(linux调试器)使用
gcc -g test.c -o test;
gdb test;
退出:ctrl+d或quit;
list 1:从第一行开始列出十行;可以按n继续上次操作;
r 或run :运行程序。
s 或step :进入函数调用
breaktrace( 或bt) :查看各级函数调用及参数
info (i) locals :查看当前栈帧局部变量的值
info break :查看断点信息。
finish :执行到当前函数返回,然后挺下来等待命令
print(p) :打印表达式的值,通过表达式可以修改变量的值或者调用函数
set var :修改变量的值
quit :退出gdb
break(b) 行号:在某一行设置断点
break 函数名:在某个函数开头设置断点
continue( 或c) :从当前位置开始连续而非单步执行程序
run( 或r) :从开始连续而非单步执行程序
delete breakpoints :删除所有断点
delete breakpoints n :删除序号为 n的断点
disable breakpoints :禁用断点
enable breakpoints :启用断点
info( 或i) breakpoints :参看当前设置了哪些断点
display 变量名:跟踪查看一个变量,每次停下来都显示它的值
undisplay :取消对先前设置的那些变量的跟踪
until X 行号:跳至 X行
直接回
n 或 next :单条执行。
p 变量:打印变量值。
ctags(linux代码查看)工程常用使用
ctags -R : 在当前目录下建立索引。
ctrl + ]:跳转到函数或变量的定义处。
ctrl + T : 跳转至上级