七、vim编辑器
- 作用:类似于txt,是一个文本编辑器
- 格式:vi 文件名 或者 vim 文件名
- vim 是 vi 的plus版,二者差不多
1.无论是touch还是vim,均不识别后缀名
2.touch创建文件自动生成,不会自动打开
3.vim编译器手动保存,创建并打开,需要写入并保存后才能创建成功,否则创建无效
7.1 vim 编辑器的三种模式
7.1.1 命令行模式
- 作用:复制,粘贴,剪切,撤回,反撤回
复制的方法:
yy 复制光标所在行
nyy 复制从光标开始的n行
选中y 随意赋值你需要的内容
进入底行模式 m,ny 通过底行命令赋值m-n行内容
shift 左键选中,shift 右键复制,双击右键粘贴
粘贴:
p 粘贴
剪切:
dd 剪切光标所在行
ndd 剪切从光标开始的n行
选中d 随意剪切你需要的内容
进入底行模式 m,nd 通过底行命令剪切m-n行内容
光标跳动:
gg 光标跳转到首行的第一个字母
G 光标跳转到尾行的第一个字母
ngg nG 光标跳转到第n行的第一个字母
灵活搭配:
= 格式对齐
ggyG 全文复制
ggdG 全文剪切
gg=G 全文对齐
撤回:
u 撤回
ctrl r 反撤回
7.1.2 插入模式
- 作用:编辑内容
a 在光标后插入
A 在光标所在行的尾字母插入
I 在光标所在行的首字母插入
i 在光标前插入
o 在光标所在行下一行插入
O 在光标所在行上一行插入
s 剪切光标所在字母,并在该位置插入
S 剪切光标所在行,并在该行首插入
insert 在光标前插入
7.1.3 底行模式
- 作用:保存,退出,查找,替换
保存与退出
:w 保存
:q 退出不保存
:wa 全部保存
:q! 强制退出
:w! 强制保存并退出
:wq 保存退出
:x 保存退出
查找
:/字符串 高亮显示查找的字符串,不区分大小写
:nohlsearch --->:noh 取消高亮
替换
:%s/字符串1/字符串2 替换全文每行的首字符串1为字符串2
:%s/字符串1/字符串2/g 替换全文符串1为字符串2
:m,ns/字符串1/字符串2/g 替换m-n行符串1为字符串2
设置行号
:set nonumber --->:set nonu 取消行号
:set number --->:set nu 设置行号
7.2 三种模式的切换
八、gcc编译器
- 常见的执行方式
gcc 文件名.c 默认生成a.out可执行文件
./a.out
- 自定义可执行文件
gcc 文件名.c -o 自定义可执行文件名
./自定义可执行文件名
- gcc分步编译【考点及面试】 -ESc .iso
加的参数: -E -S -c 无参数
阶段: 预处理阶段--->编译阶段---> 汇编--->链接
生成的文件后缀: .i .s .o .out
预处理阶段:
展开头文件,替换宏,删除注释
gcc -E hello.c -o hello.i
编译阶段:
检查语法的正确性
详细来说就是编译器的六阶段:
词法分析、语法分析、语义分析、中间代码生成、中间代码优化、目标代码生成(生成的是汇编代码)。
部分编译器会有第七个阶段:目标代码优化
gcc -S hello.i -o hello.s
汇编:
把汇编文件生成目标文件,二进制文件
gcc -c hello.s -o hello.o
链接:
把多个目标文件链接为可执行文件
gcc hello.o -o a.out
九、第一个程序 “helloworld.c”
vim helloworld.c
创建 .c 文件
- 这个地方要说一下代码补全的操作:
第一步输入命令:vi ~/.vim/snippets/c.snippets
第二步:进入vi文件,点击G进入到最后一行
第三步:点击p/a/i会打开,灰色线的隐藏代码
第四步:在主函数 main 上面加入头文件
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
第五步::wq保存即可
如果第一步打开后没有内容,就是 家目录(那个 ~ ) 下没有 .vim 这个目录文件,那就下载这个压缩包,然后解压了扔到家目录下。
- 然后可以开始编写程序了
如果配置好了那个代码补全的玩意,可以输入 main 后按 tab 键,别说不知道tab键,不知道就看上一个文档发的。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, const char *argv[])
{
printf("hello,world!\n");
return 0;
}
然后保存退出,按Esc后输入下面的内容:
:wq
然后回车
- Esc键一般在键盘的左上角
- 回车键就是 Enter 键,在键盘的右侧,数字旁边,自己找。
之后可以在控制台(就那个黑框)中输入命令进行编译了
gcc helloworld.c
然后回车
在之后就可以运行了,还是在那个黑框输入
./a.out
还是回车
- 可以拿下面的内容练练指令的操作
- 下面是我做的