vim 使用和快捷键 库的编译

一. vim的三种工作模式

1.命令模式:用vim打开文件之后,进入了不可编辑的状态,这个时候可以使用命令对文本进行操作。
2.行末模式:在命令模式下 键入 shift + : 就进入了行末模式。
3.输入模式:在命令模式下 键入 i 就进入了输入模式,这种模式就是对文本进行编辑。

行末模式、输入模式键入esc 就进入命令模式。

二.命令模式常用快捷键

i: 输入,光标前面
I: 输入,光标前面
a: 输入,光标会逻动一个位置
A:输入,光标会逻动到最后
o:输入,光标会逻动到下一行
O:输入,光标会逻动到上一行
s:输入,会删除光标所在字符
S: 输入,会删除光标所在行

1.跳转和删除
h: 左
j:下
k:上
l:右
5G: 跳转到多上行
5+回车:跳转到多上行,末行模式
gg: 跳转到开始
G: 跳转到末尾
$:跳转到行尾巴
0:跳转到行首
gg=G : 格式化代码
dw:删除单词,需要注意光标要在单词的开始
x:删除某个字母
d0:删除光标至行首
v + h/j/k/l : 删除选中区域
dd:删除整行 剪切整行
3dd: 删除3行

2.2 复制粘贴查找替换
yy: 复制
p: 粘贴,下一行
P:粘贴,本行
dd: 其实是删除并且赋值,剪切
3yy: 赋值3行
u:撤销

*:跳转到下一个
/ + define + 回车 : 查找 , n 跳转到下一个, N 是查看上一个
r + i : 把当前光标字符替换成 i
s /printf/println/ : 末行模式下,printf替换成println ,光标所在行,而且是前一个
%s /printf/println :每一行都替换,而且是前一个
%s /printf/println/g : 替换所有
1,3s /print/println/g :1-3行替换

2.3 其他 行末模式
ctrl+r:反撤销
vsp:分屏
ctrl + ww : 切换分屏
q: 退出当前
wqall:保存退出全部

2.4 在命令模式下搜索单词
/ + 单词 + 回车
n 搜索下一个
N 搜索上一个

三. gcc 编译四步骤

so 怎么来的? .c 文件 -> 可执行文件,四个步骤
gcc -E -o hello.i hello.c
3.1 预处理阶段:
宏定义展开,宏定义替换,展开 include 的文件。
3.2 预编译阶段:

在这个阶段,GCC 才会去检测你代码的规范性,语法是否有错误,gcc 会把代码翻译成汇编
gcc -S -o hello.s hello.i

3.3 汇编阶段:
把 .s 文件翻译成二进制.o文件(机器的指令),文本打开的是乱码
gcc -c -o hello.o hello.s
3.4 链接阶段:
计算逻辑地址,合并数据段,有些函数是在另外一个 so 库文件中的。
gcc -o hello hello.o

  1. 动态库和静态库

人脸识别,github 下载编译好的 android 的 so , 会有一些 .a ,会有一些 .so
4.1 静态库和动态库的区别
静态库:其实是内容的拷贝(代码),运行阶段没有 .a 文件了也是可以执行的。
动态库:不会拷贝内容,运行阶段起的作用(加载),生成 so 的时候要生成与位置无关的代码,没有 so 不能运行。

四. 动态库和静态库

下载编译好的 android 的 so , 会有一些 .a ,会有一些 .so
4.1 静态库和动态库的区别
静态库:其实是内容的拷贝(代码),运行阶段没有 .a 文件了也是可以执行的。
动态库:不会拷贝内容,运行阶段起的作用(加载),生成 so 的时候要生成与位置无关的代码,没有 so 不能运行。

4.2静态库与动态库生成:(不是重点)
4.2.1 静态库生成
4.2.1.1 将 c 生成 .o
gcc -c add.c -o add.o
4.2.1.2 使用 ar 工具制作静态库

ar rcs libmath.a add.o xxx.o
4.2.1.3 编译静态库到可执行文件

gcc a.c libmath.a -o hello

4.2.2 动态库生成

4.2.2.1 将 c 生成 .o (要生成与位置无关的代码)

gcc -c add.c -o add.o -fPIC

4.2.2.2 使用 gcc -shared 制作动态库

gcc -shared -o libmath.so add.o xxx.o
4.2.1.3 编译动态库到可执行文件,需要指定动态库的名称 -l , 指定库路径 -L
gcc a.c -o a -l名称 -L./

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355