Linux vim/gcc/gdb/make

vim

vim安装和使用

yum install vim
安装

vim a.txt
使用vim编译器打开a.txt文件

vim模式
  • 命令模式——默认打开的模式,在该模式下可以通过移动光标位置,使用快捷键对文件内容进行复制、粘贴、删除等操作
  • 编辑或者插入模式——按 I 进入编辑或者插入模式(INSERT),在该模式下可以对文件的内容进行编辑
  • 底行模式——按 shift + ; 进入底行模式,可以在末行输入命令来对文件进行查找、替换、保存、退出等操作
  • 按 ESC 返回命令模式
  • 注意不能从插入模式直接进入底行模式,反之同理,因此,模式的切换都需先返回命令模式(按 ESC )
命令模式
  • 复制粘贴

yy 复制当前行
2yy 复制当前行开始2行
p 粘贴
100p 粘贴100行

  • 删除剪切

dd 剪切当前行

  • 撤销恢复

u 撤销
ctrl + r 撤销u操作

  • 光标定位

shift + g 光标定位到文件的末尾
gg 光标定位到文件的最开始
n + shift + g 光标定位到n行
shift + 6(^) 将光标定位到当前行的最开始
shift + 4($) 将光标定位到当前行的最末尾
w \ b 光标以单词为单位进行前后移动
h \ j \ k \ l 光标左 \ 下 \ 上 \ 右移动

  • 大小写切换

shift + ~ 大小写切换

  • 替换

shift + r 进入替换模式
r 替换一个字符
4r 替换四个字符
x 或者 shift + x 删除光标所在的字符,包括之前或者之后

底行模式
  • 按 shift + ; 进入底行模式
  • 保存退出

输入 q 退出(无修改)
输入 !q 不保存强制退出(有修改)
输入 wq 保存并退出

  • 查找

输入要查找或搜索的关键词,然后回车
如果存在多个满足条件的结果。在搜索结果中切换上/下一个结果:N/n (大写N代表上一个结果,小写n代表next)

  • 替换

s/要替换的关键词/替换后的关键词,该命令只能替换1次关键词
s/要替换的关键词/替换后的关键词/g(g=global全局替换),该命令替换多次,但只能替换一行内的关键词
%s/要替换的关键词/替换后的关键词,该命令替换整个文本内的每一行中满足条件的第一个关键词
%s/要替换的关键词/替换后的关键词/g,该命令替换整个文本内所有关键词

  • 显示行号

set nu 打开行号或者取消行号

  • 分屏

vs 文件名 分屏操作
ctrl + w 切换窗
*运行相应cmd指令
!cmd 不退出vim运行相应cmd指令


gcc

  • gcc编译C语言,g++可以编译C语言也可编译C++

gcc mytest.c -o mytest
编译 mytest.c 生成 mytest执行文件

gcc -E mytest.c -o mytest.i
从现在开始对程序进行翻译,预处理完成后停止,生成mytest.i

gcc -S mytest.i -o mytest.s
从现在开始对程序进行翻译,编译完成后停止,生成mytest.s

gcc -c mytest.s -o mytest.o
从现在开始对程序进行翻译,汇编完成后停止,生成mytest.o
mytest.o是可重定向目标文件,无法执行

gcc mytest.o -o mytest
链接,生成mytest


gdb

  • 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项,即gcc -g mytest.c -o mytest;然后使用gdb mytest进行调试
常用命令
  • 显示

l+行号: 显示文件源代码,接着上次的位置往下列,每次列10行

  • 退出

quit: 退出gdb

  • 断点

b+行号: 在对应行号设置断点
info b: 查看断点(包含断点编号)
d+断点编号: 删除对应编号断点
disable/enable+断点编号:使能断点(关闭打开缎带你)

  • 调试
    r: 开始调试,如果没有设置断点,就直接运行结束
    n:逐过程,F10
    p 变量名:打印变量内容
    s:逐语句,F11
    bt: 查看当前的调用堆栈
    finish: 将当前函数跑完就停下来
    display 变量名:常显示
    undisplay 变量编号:取消常显示
    until:跳转到指定行,不建议
    c:运行到下一个断点

make makefile

  • make是一个命令,makefile是一个文件,包含依赖关系和依赖方法,主要用于项目创建和项目清理
  • makefile举例如下
proc:proc.c
	gcc -o proc proc.c
.PHONY:clean
clean:
	rm -f proc
  • 依赖关系proc:proc.c——proc文件依赖proc.c
  • 依赖方法gcc -o proc proc.c
  • make的执行规则是,只生成所有目标对象中的第一个,当然make会根据语法规则,递归生成第一个目标对象的所有依赖对象后再回头生成第一个目标对象,生成后退出;如下,只生成第一个hello文件
hello:hello.o 
	gcc hello.o -o hello 
hello.o:hello.s 
	gcc -c hello.s -o hello.o
hello.s:hello.i 
	gcc -S hello.i -o hello.s 
hello.i:hello.c 
	gcc -E hello.c -o hello.i
  • 伪目标.PHONY:clean——.PHONY 来声明伪对象,每次都会执行
  • makefile中的伪对象表示对象名称并不代表真正的文件名,与实际存在的同名文件没有相互关系,因此伪对象不管同名目标文件是否存在都会执行对应的生成指令。
  • 伪对象的作用有两个,
  1. 使目标对象无论如何都要重新生成。
  1. 并不生成目标文件,而是为了执行一些指令。根据对伪对象的理解
使用
  • 编写好相应的Makefile文件,如上
  • make则成proc文件
  • make clean则执行伪目标rm -f proc,清除文件proc
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值