目录
vim是Ubuntu系统中的文本编辑器,有三种工作模式:命令行模式/插入模式/底行模式。
1打开vim编辑器
vi/vim 路径/文件名 打开文件
如果存在则直接打开,如果不存在就创建在打开
vi/vim 路径/文件名1 路径/文件名2 -o 左右分屏打开文件名1和文件名2
2.vim的三种工作模式
2.1命令行模式
vi打开文件后则默认处在命令行模式下
h 向左
l 向右
j 向下
K 向上
yy 复制光标所在的一整行
p(小写) 将复制的内容粘贴到光标所在行的下面
P(大写) 将复制的内容粘贴到光标所在行的上面
nyy 从光标所在行开始复制n行
dd 剪切光标所在的一整行
ndd 从光标所在行开始剪切n行
u 撤销上一次操作
Ctrl+r 撤销后的重做
gg 回到首行
G 跳转到尾行
ngg 跳转到n行
= 缩进
gg=G 从首行到最后一行缩进
shift+zz 保存退出(不常用)
2.2插入模式
插入模式是用来写内容的,进入插入模式的方法,在命令模式下:
i 在光标 所在字符前一个位置开始插入
I 在光标所在字符行首开始插入
a 在光标所在字符后一位置开始插入
A 在光标所在字符的行尾开始插入
o 在光标所在行下面另起一行开始插入
O 在光标所在行上面另起一行开始插入
插入模式下按esc回到命令模式
2.3底行模式
w 保存
q 退出
wq 保存并退出
wqa 全部保存并退出
q! 不保存并退出
x 保存并退出 等价于 wq
%s/hello/word/g 将文件中的hello替换成word
%s/hello/word/gc 将文件中的hello替换成word(逐个询问是否替换)
x,ys/hello/word/g 将文件中的第m行到第n行的hello替换成word
%s/hello/word/ 只替换每行中首次出现的字符串
noh 取消高亮显示
set number(set nu) 显示行号
set nonu 取消显示行号
vsp ./ 文件名 左右分屏打开多个文件
n,md n到m行进行剪切,粘贴使用p
n,my n到m行进行复制,粘贴使用p
3.gcc编译器
语言分为编译型语言和解释型语言
编译型语言:需要通过编译器,将一种语言(一般为高级语言)转换成另一种语言(一般为低级语言),用来给计算机识别。
优点:编译成功后,每次运行不需要重新编译,执行效率高。
缺点:依赖于编译器,跨平台时需要有编译器的支持,可移植性较差。
例:c、c++
解释型语言:不需要编译器,在执行时直接由解释器逐行解释
优点:不依赖与编译器,可移植性强
缺点:每次执行需要解释器逐行解释,运行效率较低
例:shell Python
gcc编译器只能编译后缀.c文件
3.1编译的方法
方式1:gcc 文件名 将该文件进行编译,默认生成a.out可执行文件
./a.out 可以执行该文件
方式2:gcc 文件名1 -o 文件名2 将文件名1进行编译,生成文件名2的可执行文件
./文件名2 可以执行该文件
方式3:根据编译流程分步编译
预处理:宏定义的替换和头文件的展开
gcc -E hello.c -o hello.i
编译:做语法分析和词法分析,查错的,若没错则生成汇编文件
gcc -S hello.i -o hello.s
汇编:将汇编文件生成二进制文件用来给计算机识别
gcc -c hello.s -o hello.o
链接:链接库文件(函数的定义),最终生成可执行的a.out文件
gcc hello.o -o a.out