1 vim编辑器
vim是从vi发展过来的一款文本编辑器
前提: 安装了vim软件
工作模式:
1. 命令模式 -- 打开文件之后, 默认进入命令模式
2. 编辑模式 -- 需要输入一些命令, 切换到编辑模式
3. 末行模式 -- 在末行模式下可以输入一些命令
1. vim编辑器的使用
命令模式下的操作:
1>. 光标的移动
H J K L
前 下 上 后
行首: ^
行尾: $
文件开始位置: gg
文件末尾: G
行跳转: 300G
2>. 删除操作
删除光标后边的字符: x
........前......: X
........单词: dw (光标移动到单词的开始位置, 否只能删除一部分)
...光标到行首的字符串: d0
.........行尾.......: D(d$)
删除光标当前行: dd
删除多行: ndd (n -- 自然数)
3>. 撤销操作
撤销: u
反撤销: ctrl + r
4>. 复制粘贴
复制: yy
复制多行: nyy
粘贴: p (光标所在行的下一行)
粘贴: P (光标所在行)
剪切 == 删除
5>. 可视模式
切换到可视模式: v
选择内容: hjkl
操作: 复制: y 删除: d
6>. 查找操作
1). /hello 从当前光标开始向下查找的第一个匹配值
2). ?hello 从当前光标开始向上查找的第一个匹配值
3). # -- 把光标移动到查找的单词身上 , 按#
遍历时候的快捷键: N/n
7>. r: 替换当前字符
缩进:
向右: >> 整行向右缩进tab
向左: << 整行向左缩进tab
8>. 查看man文档
文本模式下的操作:
切换到文本模式:
a -- 在光标所在位置的后边插入
A -- 在当前行的尾部插入
i -- 在光标所在位置的前边插入
I -- 在光标所在行的行首插入
o -- 在光标所在行的下边开辟一个新的行
O -- .............上.........
s -- 删除光标后边的字符
S -- 删除光标所在的行
末行模式下的操作:
查找一个字符串
●输入/,并在/后面输入要查找的串,然后按下回车
●输入“n”跳转到该串的下一个出现处
●输入“N”跳转到该串的上一个出现处
替换一个字符串
●在一行内替换头一个字符串old为新的字符串new :s/old/new
●在一行内替换所有的字符串old为新的字符串new :s/old/new/g
●在两行内替换所有的字符串old为新的字符串new :#,#s/old/new/g
●在文件内替换所有的字符串old为新的字符串new :%s/old/new/g
●进行全文替换时询问用户确认每个替换需添加c选项 :%s/old/new/gc
保存退出:
q: 退出
q!: 退出不保存
w: 保存
wq: 保存退出
x: == wq
:e! 不保存修改
在命令模式下保存退出: ZZ
分屏操作:
1>. 水平分屏 sp
2>. 垂直分屏 vsp
2. gcc编译器
1>. gcc工作流程,gcc编译的四个阶段
1. gcc工作流程
1. 预处理 gcc -E
2. 编译 gcc -S
3. 汇编 gcc -c
4. 链接 没参数
1)预处理器:cpp,头文件展开,宏替换,注释去掉,gcc -E hello.c -o hello.i
2)编译器:gcc C文件变成汇编文件 gcc -S hello.i -o hello.s
3)汇编器:as 汇编文件变成二进制文件 gcc -c hello.s -o hello.o
4)链接器:ld 将函数库中相应的代码组合到目标文件中 gcc hello.o hello
2>. gcc的一些参数使用
-o: 指定生成的文件的名字
-D: 在编译的时候定义宏(控制log的输出)
-I: 指定头文件的路径
-g: gdb调试的时候需要添加该参数
-O: 编译优化, 3个等级 -O(1-3)
-Wall: 编译期间输出警告信息
1). -I 头文件目录
2). -c 生成.o文件
3). -o 生成目标文件
4). -D 编译时定义宏
5). -g 添加调试信息
6). -Wall 显示告警
7). -O 编译优化