Linux小黑板(1):vim编辑器的使用 / 动、静态库的理解

 "写下惊叹号"


 

一、vim编辑器的使用

要想在 linux系统环境下编程,使用 难以被替代且功能强大的vim编辑器是首当其冲的不二法门。

本小节,仅仅例举一些 不同模式下,如何使用vim编辑器。 

(1)命令模式;

① 光标移动 与 文本操作 

操作含义
shift + ($\^)行右(左)末
shift + g(G)底部
gg顶部
n + shift + g光标指定向下调整到n行
u / ctrl + u撤销 \ 取消撤销
h \ j \ k \ l左 、 下、 上 、 右
(n)yy (n)p复制1(n)行 粘贴1(n)行
(n)dd p剪切(删除)1(n)行 

(2)插入模式

插入模式就是正常进行写入、删除代码。 “aio”进行切换。

(3)底行模式 

操作含义
set nu/nonu调出行号
vs + 其他文件(但光标只有一个)同时查看多个文件内容
执行linux命令执行linux命令
s/ n(要被替换的) / p(用作替换的) / g文本替换
ctrl + ww在vs下 切换光标到其他文件

 

(4)替换模式 

shift+r 进入替换模式

 shirt + r 进入 批量化替换。

(5)其他文本编辑操作 

操作含义
shift + ~将光标标识的字符改为大写
r\ nr替换光标所在的字符\也支持nr
x \ X(shift+x)从光标处向后删除 \  从光标处向前删除

 注:上述都是在命令模式下的操作。

(6)vim的配置原理 

每个用户对vim 的配置需求不同。对任意用户 进行vim的配置,都不影响其他用户使用vim。

所谓的vim配置,就是去更改 在“家目录下的”, ".vimrc"文件内容。


二、动静态库的理解

 本节所讲内容,需要理解的是:

1.我们所写的代码 与 库代码的区别。

2.在linux下 当我们调用库函数时,编译器会为我们 链接动态库 还是静态库?

 不过在之前,最基础的是认识 什么是 动静态库 以及其优缺点。

 什么是库呢? 

我们在使用诸如printf、scanf 等等函数时,我们自己本身就没有实现,为什么我们在include头文件后 ,就可以进行使用了呢? 

根本上是因为 在链接的时候,编译器会自己去找系统库的位置!

(1) 动、静态库初

想想一个场景;

理解了上述的 例子,我们对动、静态库 即有了一个感性的认识。

我们以上面的 例子,来推 第二种情况! 如果是我们已经有电脑了 ,且就在我家卧室里。

还需要去 花路途上的时间吗? 还需要因为如果网吧被取缔、正在升级装修而受影响吗? 

答案是 不需要!

①动、静态库的优缺点

 

 这是否是 纸上谈兵呢? 当然不是!

(2)理解动、静态库现象

flie + 可执行程序(查看 动、静态库链接)

ldd + 可执行程序(查看使用动态库链接 编写的程序) 

.so 动态库

.a   静态库

如何认识动、静态库名? 

根据上述的实验现象,编译器默认使用 动态库进行链接。

那如果我们想要使用静态库呢?

//在末尾带上 -static
如:
    gcc s_test.c -o s_test -static

为什么他们差别这么大?

  本质上,动态库 与 可执行程序编译 是分开的。 只需要找到该动态库 的地址,能够找到即可!

并且,一个系统中 有多个进程 那么对同一个库里的函数 会多次调用。 如果使用静态库,难免会造成 代码冗余;增大 可执行程序的体积。

   相反,动态库 只需要记住 库的地址,存在这一份即可 被多个进程调用,在编译、链接时也不会 写入进程中。 因此 动态库 也被称为 “共享库”。

因此,对于静态库而言,一定需要在 有一份存储在磁盘上。 否则无法进行 静态链接。

(3)使用静态库

你是否编译器 gcc\g++带-static的时候 出现过以下提示?

很显然,出现这种提示,就意味着 你的本地没有 静态库。

//安装静态库
sudo yum install -y glibc-static.x86_64


本篇到此也就结束了

感谢你的阅读~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值