2. 编辑器 Vim


2.1 Linux编辑器 - vim使用
vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim是vi的升级版本,他不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在的终端运行,也可以运行于 x window、mac os、Windows,本章文章统一按照vim来进行讲解。
2.2 vim的基本概念
vim其实有很多的模式,但是只需要掌握3种就可以了,分别是命令模式、插入模式、底行模式,各模式的功能区分如下:
正常/普通/命令模式:
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式
插入模式:
只有在插入模式下,才可以做文字的输入,按【ESC】键可回到命令模式。该模式是我们后面用的最频繁的编辑模式。
末行模式(底行模式):
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。
在命令模式下," shift+; "即可进入该模式。要查看你的所有模式:打开 vim,底行模式直接输入:help vim-modes
2.3 vim的基本操作
进入vim,在系统提示符号输入vim及文件名称后,就进入vim全屏幕编辑画面:
vim test.c
不过要注意的是,进入从vim之后,是处于【正常模式】,你要切换到【插入模式】才能够输入文字。
【命令模式】切换至【插入模式】
输入a
输入i
输入o
【插入模式】切换至【命令模式】
目前处于【插入模式】,就只能一直输入文字,如果输错了字,想用光标键往回移动,将盖子删除,可以先按一下【ESC】键跳到【命令模式】再删除文字。当然,也可以直接删除。
【命令模式】切换至【底行模式】
【shift+;】,其实就是输入【:】
退出vim及保存文件,在【命令模式】下,按一下【:】冒号键进入【底行模式】,例如:
:w(保存当前文件)
:q(输入【wq】,存盘并退出vim)
:q!(输入q!,不存盘强制退出vim)



vim filename + n:光标定位到第n行

2.4 命令模式:



u:撤销操作;ctrl+r:反撤销操作。














删除文字的总结:
【x】:每按一次,删除光标所在位置的一个字符
【nx】:表示删除光标所在位置的"后面(包含自己在内)"n个字符
【X】:大写的X,每按一次,删除光标所在位置的"前面"一个字符
【nX】:表示删除光标所在位置的"前面"n个字符
【dd】:删除光标所在行
【ndd】:从光标所在行开始删除n行
2.5 插入模式:

底行模式:

2.6 底行模式:













vim操作总结图:

3. 编译器gcc/g++
3.1 背景知识
-
预处理(进行宏替换/去注释/条件编译/头文件展开等)
-
编译(生成汇编)
-
汇编(将汇编代码生成机器可识别的代码)
-
链接(生成可执行文件或库文件)
3.2 gcc编译选项
格式:
gcc 【选项】 要编译的文件 【选项】 【目标文件】



3.2.1 预处理
gcc --E hello.c --o hello.i

3.2.2 编译(生成汇编)
gcc --S hello.i --o hello.s

3.2.3 汇编(生成机器可识别代码)
gcc --c hello.s --o hello.o

3.2.4 链接
gcc hello.o --o hello

3.2.5 动态链接和静态链接





4. 自动化构建-make/makefile
4.1 背景
makefile带来的好处就是------"自动化编译",一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。
make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,可见,makefile都成为了一种在工程方面的编译方法。
make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。
4.2 使用











