vim-编辑器

1.三种模式&三种模式切换操作、

​ (1)使用vim编辑文件:vim[文件名称]

​ (2)正常模式(N):正常模式下不能往文件中写内容,需要进入到插入模式,才能写入内容

​ 插入模式(i):i进行到插入模式,就可以正常进行插入了

​ 底行模式(C):使用":"进入底行模式

​ :w 保存

​ :wq 保存退出

​ :q 不保存退出

​ :q! 强制退出

​ esc:esc可以从任何模式回到正常模式

2.移删复替撤更跳

  • 以下操作为正常模式下的快捷操作

(1)移动光标

​ 1.上下左右键

​ 2.h:光标向左移动

​ j: 光标向下移动

​ k:光标向上移动

​ l: 光标向右移动

​ 3.gg:快速回到第一行

​ G:快速回到最后一行

​ 4.[num]G:快速跳转到num行

(2)删除

​ 1.x:向后删除光标所在位置的字符

​ [num]x:向后删除num个字符

​ 2.X:向前删除字符,不包含光标字符

​ [num]X:向前删除num个字符

​ 3.dd:剪切作用,如果剪切完毕不粘贴,则效果等同于删除

​ [num]dd:剪切num行

(3)复制

​ yy:复制一行

​ [num]yy:复制num行

(4)粘贴

​ p:向光标当前行的下一行进行粘贴

​ P(大写):向光标当前行的上一行进行粘贴

(5)替换

​ r:替换当前光标所在字符

​ R:进入到replace模式,进行替换,按esc结束

(6)撤销

​ u:撤销

​ ctrl+r:反撤销

(7)更改

​ cw:替换某个单词,并且从正常模式切换到插入模式

(8)跳动

​ gg=G:整理当前代码格式

批量注释

​ ctrl+v-->选中注释的行(j/k)-->I(shift+i)-->插入注释符(//)-->esc

批量q取消注释

​ ctrl+v-->选中注释的行,列(i/k/l/h)-->x

3.常用指令

(1)快速进入到插入模式:

​ o:快速到下一行 O:快速到上一行

​ A:快速回到行尾 I:快速回到行首

(2)搜索

​ /:向下搜索,用n跳转

​ ?:向上搜索,用n跳转

(3)查找

​ 在底行模式下:

​ :%s/[待要替换的字符串]/[替换成的字符串]/g

​ %:全文替换

​ g:替换当前行所有目标字符串

编译器:gcc/g++

  • gcc-->C语言 g++-->C++

编译一个程序需要经历的四个过程

1.预处理

​ (1)宏替换

​ (2)头文件展开

​ (3)去注释

​ (4)条件编译

​ gcc/g++ -E [file] -o [file].i

2.编译

​ 将源代码转换成汇编代码

​ (1)语法语义的检测

​ gcc -S [file] -o [file].s

3.汇编

​ 将汇编代码转化为机器代码(二进制代码)

​ gcc -c [file] -o [file].o

4.链接

​ (1)用目标文件+库文件生成可执行程序

​ 静态链接:

​ gcc/g++ 命令行中,增加一个参数:-static

​ 动态链接:

​ 默认动态链接

  • ldd命令

    ldd [file]

    查看可执行程序依赖的库文件

  • gcc/g++ [file].c -o [file]:生成可执行文件

  • -o 制定目标文件名称

调试器:gdb

1.debug&release

​ 编译后生成的文件默认release版本,若要debug版本,gcc/g++ 命令行中,增加一个参数:-g

​ 调试的文件必须是debug版本

2.调试范式

​ gdb [binfile]

  • 若提示不是.......done,则首先要查看是不是debug版本

3.调试的选项

​ l(list):查看文件内容

​ r(run):程序运行起来

​ b 行号:加断点

​ i b:查看所有断点信息

​ disable [序号]:使对应断点失效

​ enable [序号]:使对应断点生效

​ n(next):逐过程执行---->F10

​ s(step):逐语句执行---->F11

​ p [变量名称]:打印变量值

​ bt/where :查看调用堆栈

​ f [堆栈序号]:查看对应函数中临时变量

make&makefile

  • coredump文件:内核转储文件,保存的是进程在崩溃的一瞬间内存的映像

1.make&makefile的解释:

​ (1)make是解释器,解释makefile文件。makefile是书写编译规则的文件

​ (2)make解释makefile文件,可以自动化构建项目,自动化生成可执行程序

2. makefile文件书写的规则

​ (1)目标对象&依赖对象&编译命令

​ (2)make解释makefile文件的规则

​ a.make会在当前目录下寻找makefile文件

​ b.只为生成第一个目标对象而服务

​ c.若目标对象相较于依赖对象而言,较新,则不生成;较旧,则生成

​ d.make在生成第一个目标对象的时候,如果依赖对象也需要后-续生成,则先生成依赖对象后, 使用依赖对象生成目标对象

​ (3)伪目标---一般用于工程清理

​ .PHONY:目标对象

​ 目标对象:

​ 命令

使用方法:make 目标对象

3.makefile文件:内置变量&自定义变量

内置变量

​ $^:所有依赖对象

​ $@:所有目标对象

自定义变量
BIN=mytest
CTGAGS=-g

$(BIN):test.c
	gcc $^ -o $@ $(CTAGS)