美文网首页
vim 使用和快捷键 库的编译

vim 使用和快捷键 库的编译

作者: 葫芦娃DayDream | 来源:发表于2020-10-27 22:20 被阅读0次

一. 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./

相关文章

  • vim 使用和快捷键 库的编译

    一. vim的三种工作模式 1.命令模式:用vim打开文件之后,进入了不可编辑的状态,这个时候可以使用命令对文本进...

  • Linux基本使用

    一.快捷键 二. 常用命令总结(Ubuntu) 三 Vim使用 四 gcc使用 五 静态库 示例 编写需要生成静态...

  • 编译安装VIM

    Vim 编译安装vim 安装依赖库(支持Python 3、Lua、Ruby) 删除原有Vim 首先查询系统中有哪些...

  • vin学习笔记

    vim学习 vim配置 主要配置使用Python3 vim主要快捷键 vim的模式,命令行模式,插入模式,视图模式...

  • vim

    vim快捷键使用 替换每一行的开头和末尾 快速多行合并为一行

  • 编译安装VIM

    编译安装VIM 动机:使用Vim插件YCM(YouCompleteMe) 1.操作平台:Debian buster...

  • tmux和vim很配哦:使用vim风格的快捷键

    tmux快捷键 tmux默认使用emacs模式的快捷键,这对我们使用vim的用户其实很不友好,而且我们认为tmux...

  • Vim的十个基本用法

    1、在 Vim 中打开文件:使用命令vim filename打开文件。 2、进入编辑模式:使用键盘快捷键i进入编辑...

  • spacemacs HowToUse 常用概念和模式切换

    spacemacs_HowToUse_常用概念和模式切换 常用概念 Vim的几种模式 正常模式:可以使用快捷键命令...

  • 源码安装vim

    用git从github上clone一份源码 编译之前下载相关类库 切换到vim目录下 设置编译属性 开始编译安装 ...

网友评论

      本文标题:vim 使用和快捷键 库的编译

      本文链接:https://www.haomeiwen.com/subject/qujxvktx.html