"写下惊叹号"
一、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
本篇到此也就结束了
感谢你的阅读~