Linux开发工具(二)

文章目录

vim的使用

命令模式

光标移动

  1. 与光标移动相关的命令
  2. 一旦退出文件编辑,就无法进行进行撤销操作了,但是只是保存,没有q退出,是可以进行撤销的
cpp 复制代码
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

视图模式和替换模式

  1. shift+r:进入替换模式 ,可以进行批量化的替换
  2. ctrl+v:进入视图模式,hjkl可以进行区域的选择,shift+i可以进入到插入模式
  3. 首先在视图模式下进行区域的选择,按shift+i,进入到插入模式,进行注释一行,再按esc进入到命令模式,就可以进行刚才的区域的注释
    6.进行全部的注释:ctrl + v -> gg -> shift + g:全部的区域选择 -> shift + i -> // + esc
  4. gg:向上进行区域选择,shift+g:进行全部的区域选择
  5. n + shift + g:可以进行指定的区域选择,只能从当前行向下选择区域
  6. 保存退出后还有之前注释的行,不能用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
  1. vim进入底行模式,vim 文件名 -> wq会保存并退出,生成一个空文件,如果不保存的话,不会生成文件
  2. 在底行模式下,vs (新或旧)文件名:会分屏操作
    光标在哪个窗口下,操作哪个窗口
    必须在命令模式下,光标在两个窗口之间切换:ctrl+ww
  1. vim + 文件名 + +20:光标会定位到20行
cpp 复制代码
vim code.c +20
  1. !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 形成可执行文件,./可执行文件:运行程序
  1. 形成可执行程序 mycode


  • 预处理
    头文件展开
    去注释
    宏定义替换
    条件编译
cpp 复制代码
gcc -E code.c -o code.i
cpp 复制代码
gcc code.i -o exe
可以直接生成可执行程序
  • 编译(生成汇编)
cpp 复制代码
gcc -S code.i -o code.s
  • 汇编(生成机器可识别代码)
cpp 复制代码
gcc -c code.s -o code.o
生成.obj
  • 连接(形成可执行文件或库文件)
cpp 复制代码
gcc code.o -o code
  1. 记忆:ESc 预处理,编译,汇编形成的选项,.iso分别是形成的文件后缀,iso是镜像文件
  • 将所有的目标文件形成一个可执行程序

  1. 可执行程序code需要链接C标准库才能执行程序
  • ldd code:查看可执行程序依赖哪些库

    库的分类:
    1.动态库:Linux(.so),windows(.dll)
    2.静态库:Linux(.a),windows(.lib)
相关推荐
资讯第一线13 分钟前
Windows系统工具:WinToolsPlus 之 SQL Server Suspect/质疑/置疑/可疑/单用户等 修复
运维
惊起白鸽4501 小时前
LVS负载均衡
运维·负载均衡·lvs
Sapphire~2 小时前
Linux-07 ubuntu 的 chrome 启动不了
linux·chrome·ubuntu
伤不起bb2 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
广东数字化转型3 小时前
nginx怎么使用nginx-rtmp-module模块实现直播间功能
linux·运维·nginx
love530love3 小时前
【笔记】在 MSYS2(MINGW64)中正确安装 Rust
运维·开发语言·人工智能·windows·笔记·python·rust
啵啵学习3 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式
半桔3 小时前
【Linux手册】冯诺依曼体系结构
linux·缓存·职场和发展·系统架构
网硕互联的小客服4 小时前
如何利用Elastic Stack(ELK)进行安全日志分析
linux·服务器·网络·安全
数字芯片实验室4 小时前
寄存器模型生成:从手工到自动化
运维·自动化