Linux开发工具(二)

发布于:2025-03-01 ⋅ 阅读:(13) ⋅ 点赞:(0)

vim的使用

命令模式

光标移动

1. 与光标移动相关的命令
2. 一旦退出文件编辑,就无法进行进行撤销操作了,但是只是保存,没有q退出,是可以进行撤销的

gg:快速定位到第一行
yy:复制
p:粘贴
n+yy,n+p
dd:剪切当前行,或者以行为单位进行删除
n+dd
x:删除光标所在的字符,从右向左删除,左侧光标不动,右侧删除
shift+x:光标右侧不动,左侧删除,从左向右删除
shift+g:快速定位到最后一行
u:撤销历史操作
ctrl+r:撤销u操作
ctrl+r和u互为对方的撤销
r:替换为光标所在字符,r + 替换字符
n+r
shift+~:进行大小写切换
h:左
j:下
k:上
l:右
n+h,j,k,l表示可以向上左下右移动n个单位
w:以单词为单位向后移动
b:以单词为单位向前移动
n+w,b:w,b也可以加n

在这里插入图片描述

视图模式和替换模式

3. shift+r:进入替换模式,可以进行批量化的替换
4. ctrl+v:进入视图模式,hjkl可以进行区域的选择,shift+i可以进入到插入模式
5. 首先在视图模式下进行区域的选择,按shift+i,进入到插入模式,进行注释一行,再按esc进入到命令模式,就可以进行刚才的区域的注释
6.进行全部的注释:ctrl + v -> gg -> shift + g:全部的区域选择 -> shift + i -> // + esc
7. gg:向上进行区域选择,shift+g:进行全部的区域选择
8. n + shift + g:可以进行指定的区域选择,只能从当前行向下选择区域
9. 保存退出后还有之前注释的行,不能用u进行撤销了,可以进入视图模式,进行区域选择,然后用d进行删除注释10. 视图模式不仅可以进行批量化注释,还可以进行批量化补充代码,和第6点差不多的步骤

  • shift+3 = #,选中单词,高量出来,可以进行查找,n:逆向查找

  • i,o,a都可以进入插入模式,i保证光标在原来的行,o光标换行新起一行,a光标定位到下一个字符的位置

底行模式

  • 底行模式下:shift+zz退出,wq!,保存并强制退出,set nu:设置行好,set nonu:撤销行号

在这里插入图片描述
在这里插入图片描述

1. :!命令,可以在底行模式下进行命令的输入并且执行命令
2. :%s/dst/src:可以将dst的字符串替换为src

在这里插入图片描述

3. vim进入底行模式,vim 文件名 -> wq会保存并退出,生成一个空文件,如果不保存的话,不会生成文件
4. 在底行模式下,vs (新或旧)文件名:会分屏操作
光标在哪个窗口下,操作哪个窗口
必须在命令模式下,光标在两个窗口之间切换:ctrl+ww

在这里插入图片描述

5. vim + 文件名 + +20:光标会定位到20行

vim code.c +20

6. !v 会搜索最近的以v开头的历史命令并执行这个命令

在这里插入图片描述

vim的配置

1. 进入 ~/.vimrc文件中,set number保存并退出可以永久设置行号

在这里插入图片描述

  • 双引号可以注释配置的命令

在这里插入图片描述

  • vim etc/vimrc:可以进行全局的配置,影响的是所有的用户,.vimrc自己的配置只影响当前的用户
  • 显示版本信息

在这里插入图片描述

  • 一键化vim配置
    centos下载链接
    ubuntu可以使用vimplus(插件),如果下不了,也可以到github上搜vimplus
    ubuntu下载链接
  • vim .vimrc进入配置文件,/2搜索回车的缩进,将回车的缩进的2改成4,回车就会缩进4个字符
    在这里插入图片描述

gcc/g++

背景知识

1. gcc 形成可执行文件,./可执行文件:运行程序

在这里插入图片描述

2. 形成可执行程序 mycode

在这里插入图片描述
在这里插入图片描述

  • 预处理
    头文件展开
    去注释
    宏定义替换
    条件编译
    在这里插入图片描述
gcc -E code.c -o code.i
gcc code.i -o exe
可以直接生成可执行程序
  • 编译(生成汇编)
gcc -S code.i -o code.s
  • 汇编(生成机器可识别代码)
gcc -c code.s -o code.o
生成.obj
  • 连接(形成可执行文件或库文件)
gcc code.o -o code

在这里插入图片描述

3. 记忆:ESc 预处理,编译,汇编形成的选项,.iso分别是形成的文件后缀,iso是镜像文件

  • 将所有的目标文件形成一个可执行程序

在这里插入图片描述

1. 可执行程序code需要链接C标准库才能执行程序

  • ldd code:查看可执行程序依赖哪些库
    在这里插入图片描述
    库的分类:
    1.动态库:Linux(.so),windows(.dll)
    2.静态库:Linux(.a),windows(.lib)