1 初识vim编辑器
创建第一个vim编辑的代码

1.新建文件

2.使用vim打开

3.打开默认是命令模式,写代码需要在屏幕上输出"i"字符
- 1.写完代码后要按
Esc
键退出到指令模式 - 2.再按
shift+:+wq
即可保存并退出vim
(因为不支持鼠标 ,通常 使用键盘上的箭头
移动光标进行编辑)
4.cat进行查看

5.gcc编译文件

运行成功
2. vim的多模式
1.模式切换
模式切换如图:
结论:
命令模式可以理解为Windows系统中的鼠标
,可以快速,高效得进行编程
2.命令补充
1.与光标有关的命令
- n+gg :光标移动至第n行(任意行)
- shift+g :光标移动至
最后一行
- shift+$ : 光标移动至所在行的最后
- shift+^ : 光标移动至所在行的最前
- h,j,k,l :上下左右移动(h左,l右,j下,k上)
- w,b: 光标按单词间隔进行行列移动(w向后,b向前)
- n+ x :在光标所在处
向后删除
n个字符 - n+ X :在光标所在处
向前删除
n个字符
2.其他命令(命令模式)
- yy :复制当前一行
- n+ yy :从当前行开始复制n行代码
- p :将复制的内容黏贴至当前行的下一行
- u :撤销上一步操作
- ctrl+r :对u进行撤销,即恢复操作
- n+ dd :剪切或删除行
- shift+r:进入替换模式,可以重新写当前行的代码
3.其他命令 (底行模式)
- shift+:+set nu:
调出行号
(底行模式) - "/+字符串" +n : 查找字符串,按n找到下一个字符串
- !gcc+文件名 : 执行正在写的程序文件,
生成可执行程序


- !./a.out (生成的可执行程序) :
执行程序
- vs + 文件名(
实现分屏操作
) - ctrl+ww,
切换光标至另一个界面
(可以用来复制其他文件中的内容配合"yy")

4.补充命令
-
- ctrl+v(进入视图模式)->hjkl(移动光标,使其覆盖部分内容)->shift+i->"//"(插入双斜杠,也可以尝试插入别的字符)->esc(回到命令模式)
批量化注释
- 2.ctrl+v(进入视图模式)->hjkl(移动光标,使其覆盖部分内容)->d
批量化删除注释
- 3.shift+:->%s/xxx/aaa/g
将代码中的xxx全部换成aaa
3.vim的简要配置
1.进入家目录 cd ~

2.创建 .vimrc文件 catch .vimrc

3.vim .vimrc 并在里面写入想要的指令(可以自行去网上搜索)
我这边写入 set nu(显示行数)和 set mouse=a(支持鼠标)
4.再次打开test.c

发现已经添加了行号。
4.程序翻译-------gcc/g++
1.预处理(宏替换+去注释+条件编译+头文件展开)
举例:
使用gcc -E test.c -o test.i
- -o:表示我们要形成的文件的名称(这里即test.i)
- gcc -E:表示从现在开始
只要预处理完成就停下来
用vim打开test.i并与test.c对比:
(宏替换+去注释+头文件展开全部完成)
2.编译(生成汇编)
gcc -S test.i -o test.s
- -o:表示我们要形成的文件的名称(这里即test.s)
- gcc -E:表示从现在开始
只要编译完成就停下来

3.汇编(生成机器可识别代码)
gcc -c test.i -o test.o
- -o:表示我们要形成的文件的名称(这里即test.s)
- gcc -c:表示从现在开始
只要汇编完成就停下来

4.链接(生成可执行文件或库文件)

gcc test.o -o test
(test就是可执行的文件)
5.补充知识点sudo(添加用户至白名单)
1.ls -l /etc/sudoers

2.su(切换至root)
3.vim /etc/sudoers

发现白名单里只有root,我们可以自行添加用户:
4.sudo验证

成功使用sudo,代表白名单配置成功。
