编辑器 vim
1.常见的三种模式
(1).正常/普通/命令模式(Normal mode):控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。
(2).插入模式(Insert mode):只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
(3).末行模式(last line mode):文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。
2.模式之间的切换
从普通模式进入插入模式:i(在光标前面进行插入),A(光标移动到行末),o(在光标的上一行插入一个新行),O(在光标的下一行插入一个新行),a(光标移动到下一个位置)。
从插入模式进入普通模式:Esc
从普通模式进入底行模式:输入冒号:。从底行模式返回普通模式:Esc。
若要退出当前vim,只能从底行模式去退出:wq(保存并退出),q(直接退出),q!(强制退出),wq!(强制保存退出)。
3.普通模式下常见的快件方式(移删复替扯更跳)
(1).移动光标
vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母h、j、k、l,分别控制光标左、下、上、右移一格
按G:移动到文章的最后
按 $ :移动到光标所在行的“行尾”
按^:移动到光标所在行的“行首”
按w:光标跳到下个字段的开头
按e:光标跳到下个字段的字尾
按b:光标回到上个字的开头
按gg:进入到文本开始
(2).删除文字
x:每按一次,删除光标所在位置的一个字符
#x:例如,6x表示删除光标所在位置的“后面(包含自己在内)”6个字符
X:大写的X,每按一次,删除光标所在位置的“前面”一个字符
#X:例如,20X表示删除光标所在位置的“前面”20个字符
dd:删除光标所在行
#dd:从光标所在行开始删除#行
(3).复制
yw:将光标所在之处到字尾的字符复制到缓冲区中。
#yw:复制#个字到缓冲区
yy:复制光标所在行到缓冲区。
#yy:例如,6yy表示拷贝从光标所在的该行“往下数”6行文字。
p:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完
成复制与粘贴功能。
(4).替换
r:替换光标所在处的字符。
R:替换光标所到之处的字符,直到按下ESC键为止。
(5).撤销上一次操作
u:如果您误执行一个命令,可以马上按下u,回到上一个操作。按多次“u”可以执行多次回
复。
ctrl + r: 撤销的恢复(反撤销)。
(6).更改
cw:更改光标所在处的字到字尾处
c#w:例如,c3w表示更改3个字
(7).跳至指定的行
ctrl+g列出光标所在行的行号。
#G:例如,「15G」,表示移动光标至文章的第15行行首。
4.多行注释,多行去注释
多行注释:(1)Ctrl+v,(2)使用hjkl移动光标,选中需要注释的行,(3)Shift+i:进入插入模式,(4)输入注释符,(5)Esc。
多行去注释:(1)Ctrl+v,(2)使用hjkl移动光标,选中需要去注释的行当中的注释符,(3)x 删除注释。
5.替换(先在普通模式下移动光标选中待要替换的行,然后进入底行模式)
(1)单行首个目标字符串替换:s/待要替换的目标字符串/替换成为该字符串/
(2)单行全部目标字符串的替换:s/待要替换的目标字符串/替换成为该字符串/g
(3)全文替换:%s/待要替换的目标字符串/替换成为该字符串/g
(4)指定行替换:num1,num2s/待要替换的目标字符串/替换成为该字符串/g
g:表示替换当前行所有 %:代表当前所有行
6.没有正常关闭vim打开的文件,会产生swp文件,只需打开上次没有正常关闭的文件,拷贝swp文件所在路径,然后删除swp文件即可。
Linux编译器-gcc/g++
编译的4个过程:1. 预处理(进行宏替换);2. 编译(生成汇编);3. 汇编(生成机器可识别代码);4. 连接(生成可执行文件或库文件)
预处理
预处理功能主要包括宏替换,文件展开,条件编译,去注释。
实例: gcc –E test.c –o test.i
选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。
选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。
编译(生成汇编)
在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。
用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。
实例: gcc –S test.i –o test.s
汇编(生成机器可识别代码)
汇编阶段是把编译阶段生成的“.s”文件转成目标文件
读者在此可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了
实例: gcc –c test.s –o test.o
链接:将若干个二进制代码(.o)或者库文件链接起来生成可执行程序或库文件。 实例:gcc test.c –o mytest