1 vim基本概念
vim三种主要模式
- 正常/普通/命令模式
控制屏幕光标的移动,字符、字或行的删除,移动或复制某行
- 插入模式
编辑模式,在此模式下做文字输入
- 末行模式
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作
2 vim基本操作
输入vim 文件名称后进入vim编辑画面,进入后处于正常模式。
三种模式间的切换
- 【正常模式】切换至【插入模式】
- 输入 i (从光标当前位置开始输入)
- 输入 a (从光标所在位置的下一个位置开始输入)
- 输入 o (插入新的一行,从行首输入)
- 【插入模式】切换至【正常模式】
按一下[Esc]键
- 【正常模式】切换至【末行模式】
按下shift键和;(就是输入:)
进入末行模式的操作
:w(保存当前文件)
:wq(保存并退出)
:q!(不保存强制退出)
3 vim正常模式命令集
3.1 移动光标
- h、j、k、l控制光标左、下、上、右移动
- G:移动到文字最后
- $:移动到光标所在行的行首
- crtl+b:屏幕向后移动一页
- ctrl+f:屏幕向前移动一页
3.2 删除文字
- x:每按一次,删除光标所在位置的一个字符
- ?x:删除光标所在位置包括自己?个字符
- X:大写X,删除光标所在位置前面的一个字符
- dd:删除光标所在行
- ?dd:从光标所在位置开始删除?行
3.3 复制
- yy:复制光标所在行到缓冲区
- ?yy:复制光标所在行下面往下数?行
- p:将缓冲区的字符粘贴到光标所在位置
3.4 替换
- r:替换光标所在处的字符
- R:替换光标所到之处的字符
3.5 撤销上一步操作
- u:误执行一个命令,可以马上按下u,回到上一个操作
- ctrl+r:撤销的恢复
3.6 更改
- ctrl+g:列出光标所在行的行号
- ?G:移动光标至文章的第?行行首
4 vim末行模式命令集
- 列出行号
set nu:在文件中的每一行前面列出行号
- 查找字符
/+关键字:按 / 键,再输入想查找的字符,如果第一次查找的关键字不是您想要的,可以一直按n会一直往后寻找
?+关键字:同上
gcc编译器
预处理(进行宏替换)
- 预处理功能主要包括宏定义,文件包含,条件编译,去注释等。
- 预处理指令是以#号开头的代码行。
- 实例 gcc -E hello.c -o hello.i
- -E选项:gcc在预处理结束后停止编译过程
- -o选项:是指目标文件,“.i”文件为已经过预处理的C原始程序
编译(生成汇编)
- 检查代码的规范性、是否有语法错误等
- 实例:gcc -S hello.i -o hello.s
汇编(生成机器可识别代码)
- 汇编阶段是把编译阶段生成的“.s”文件转成目标文件
- 实例:gcc -c hello.s -o hello.o
连接(生成可执行文件或库文件)
- 实例:gcc hello.o -o hello
gdb调试器
gdb 源文件名称
使用gdb调试,要在源代码生成二进制程序的时候,加上-g选项
- list/l 行号:显示源文件代码,接着上次的位置往下列,每次列10行
- list/l 函数名:列出某个函数的源代码
- r/run:运行程序
- n/next:单条执行
- s/step:进入函数调用
- break(b) 行号:在某一行设置断点
- break 函数名:在某个函数开头设置断点
- info break:查看断点信息
- print(p):打印表达式的值
- set var:修改变量的值
- delete breakpoints:删除 所有断点
- quit:退出gdb