【Linux】基础开发工具(2):vim补充说明&&gcc/g++编译器

前文回顾:【Linux】基础开发工具(1):软件包管理器&&vim编辑器

目录

一 vim编辑器使用补充

​编辑

1大小写切换

2 替换模式

3 视图模式

4 底行模式补充

5 两个使用技巧

1 定位到第n行

2 重复上一次的命令

6 解决问题

1. vim 异常退出问题

2. 用户 sudo 权限问题

7 vim总结

配置文件(.vimrc)

常见配置项示例

二 编译器

1 翻译的过程(重点放在编译选项上)

a 预处理

b 编译

c 汇编

d 链接

2 一般程序的构建过程(.o文件)



一 vim编辑器使用补充

1大小写切换

shift+· = ~:大小写切换

2 替换模式

我们上一次学习了三个模式,分别是:命令模式,插入模式,底行模式。今天学习一种新的模式:替换模式。

数字(n)+r:对光标所在的字符进行替换   如果只按r就只替换一个字符

shift + r = R :让vim进入替换模式,当前行光标之后的内容当作没有直接覆盖  输入的新字符会直接覆盖光标位置的旧字符

从从替换模式到命令模式,只需要按Esc就可以,但是现在没有直接的方法使替换模式到插入模式和底行模式。

3 视图模式

视图模式适用于批量化注释或去注释

ctrl + v = 视图模式(由命令模式进入)

可以使用我们上一篇讲的光标的移动去选择区域(hjkl)

shift + i = l  :进入插入(例如此时需要插入// ,那么就先打一个//,之后再按Esc那么每一行就都会出现//)

用hjkl进行区域选择,按d即可删除区域

4 底行模式补充

底行模式的本质也是命令的一种

shift+ ; = : 进入底行模式

w:保存

q:退出

!:强制(可以组合使用 w! 表示强制保存)

set nu或 set nonu:调出行号

:! command 

bash中执行的命令都可以在底行中执行

这里的command表示的是命令名称,假如说你在底行模式中使用一个命令的时候,想查看一下它的命令手册,那么可以直接在底行中调用该命令查看命令手册,就不需要退出底行模式再查看

vs XXX.x  分屏对比文件 

有两个文件需要对比的时候,可以使用该命令来分屏  注意:光标在哪个区域就在哪个区域输入文字

yy复制,p粘贴

ctrl+www : 让光标在多屏之间切换,光标在哪一个屏幕,你就在编辑哪一个文件

:/要搜索的关键词  ---->高亮匹配项目,依次查看匹配项

当我们需要找到某个关键词或字符时,就可以使用这个指令

:%s/被替换/新内容/g   ---->用新内容替换指定的项目

当我们需要把一个单词中的字符替换时,总不能一个一个替换,所以可以用这个指令一次性替换

底行中,如果你打开了一个不存在的文件,没有编辑直接退出,该文件不会被创建,但是如果你w保存了,vim会自动给你新建文件

5 两个使用技巧

1 定位到第n行

当我们退出vim中时,光标所在的位置默认就是退出vim所在的那一行

vim code.c +5

vim编辑器的一种启动方式,作用是直接打开code.c文件并定位到第 5 行。

2 重复上一次的命令

如上所示:

它的作用是重复执行上一次以 “v” 开头的命令。

在 Linux 的命令行环境中,! 是用于调用历史命令的特殊符号

6 解决问题

1. vim 异常退出问题
  • 现象:vim 异常退出后会生成.code.c.swp交换文件。

当我们再次打开vim就会出现:

当我们用ls-al查看隐藏文件时,就可以看到这个文件

  • 解决:可通过rm .code.c.swp删除该交换文件,之后即可正常编辑code.c文件。
2. 用户 sudo 权限问题

当我们是普通用户时,是无法进行sudo时,因为普通用户没有添加到白名单中

  • 现象:用户zs_118执行sudo命令时,提示 “is not in the sudoers file. This incident will be reported.”,说明该用户不在sudo授权列表中。
  • 解决
    • 切换到 root 用户(如su root,输入 root 密码)。
    • 编辑sudoers文件:visudo(或vim /etc/sudoers

当我们使用vim/ect/sudodur指令,用户的名字添加到里面即可,此时系统不会让我们添加,我们直接强制添加w!即可

    • 在文件中添加一行:zs_118 ALL=(ALL) ALL,保存退出后,该用户即可获得sudo权限。

7 vim总结

vim 是 Linux 中强大的文本编辑器,需通过配置(如.vimrc文件)才能充分发挥其功能。

配置文件(.vimrc)

vim很挫啊!原始的vim需要经过配置拆了嗯更好的使用。

刚刚创建的用户,是没有配置vim,此时就不会出现 .vimrc的文件,所以我们就手动创建一个.vimrc的文件

  • 位置:位于当前用户的/home/XX/目录下(如示例中/home/zs/.vimrc)。
  • 作用:存储 vim 的个性化配置项,仅对当前用户生效,是单用户配置的最佳实践。
常见配置项示例

可以借助AI生成vim的基本配置命令清单

如何一键化设置好vim呢?

在Centos系统有相关链接:

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

但是一定要在普通用户路径虚啊安装


二 编译器

gcc 是 C 语言编译器,g++ 是 C++ 编译器(本质上 G++ 也能编译 C 代码,相当于将C代码转变为C++代码去进行编译,但习惯上 C 用gcc,C++ 用 g++)

编译的本质:将源文件翻译成可执行二进制文件

1 翻译的过程(重点放在编译选项上)

a 预处理

我们先在code.c中写入代码,文件包含头文件,宏,注释

如果一次性将整个代码编译完,是看不到翻译过程的

预处理指令:gcc -E code.c -o code.i:将翻译过程放到code.i的临时文件中

预处理的工作:头文件展开、去注释、宏替换、条件编译

vim code.i

code.c文件中的去注释、头文件展开、宏替换的效果都是由预处理产生的

头文件展开:就是把头文件相关内容拷贝到源文件!!头源合并的过程!(编译器只需要再预处理时需要头文件)

当我们把code.c翻译为code.i文件时,code.i还是头文件,它是一个非常干净的c语言,里面没有一个注释和宏替换

b 编译

编译C语言变为汇编语言

编译指令 gcc -S code.i -o code.s

c 汇编

汇编:汇编语言变为目标文件(.o/.obj(可重定位二进制目标文件))

结束汇编时,我们不能正常运行code.o文件,还需要链接

d 链接

需要再链接的时候,把我们的.o和C标准库链接形成可执行!

链接指令: gcc code.o -o code.exe 

可以这样记忆:ESc -> iso

2 一般程序的构建过程(.o文件)

gcc -c code.c:直接形成同名.o文件

提高效率:gcc -o code.exe code.o

当有很多的源文件时,先把源文件编译成.o文件,然后再把.o链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值