vim文本编辑器的基本操作及gccgdb的基本使用方法

Posted coldcold

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim文本编辑器的基本操作及gccgdb的基本使用方法相关的知识,希望对你有一定的参考价值。

Vim test.c +24    打开并定位到24行

命令模式

1、编辑模式

         h          向左

         j           向下

         k          向上

         l           向右

i       输入 insert

gg=G  可以首行缩进

yy        拷贝

p         粘贴

R         替换模式

r          替换当前位置,回到命令模式

dd       删除当前行

3dd     删除光标以下3行

u  撤销                 

:行号 转移到对应行

J          将下一行拼接到上一行末尾

$          当前行的行尾

0或^   当前行的行首

w         跳到下一个单词

b         跳到上一个单词

}        跳到下一个空行

{        跳到上一个空行

在{或}上按%可以在两者之间跳跃切换

dw      从光标位置删除到当前单词尾部

db       从光标位置删除到当前单词首部

x          删除一个字符

K或3K        对于系统函数或库函数可以跳转到其帮助手册

         v          可视化(jk操作后 x删除y复制)只能选中行

         ctrl+v          块可视化(可以选择字符)

         /          查找(n下一个N上一个)

         ?单词  查找(N下一个n上一个)

2、末行模式(:)

         :w      保存

         :q      退出

         :set nu  显示行号

         :no nu  取消行号

         :50,59s/旧内容/新内容/g        50-59行的所有旧内容替换成新内容(不要g则替换每行第一个出现的旧内容)

         :%s/旧内容/新内容/g                 全文替换

         :vsp 文件名                                垂直分屏

         :sp 文件名                                  水平分屏

                                   :q                       退出

                                   :r                        将另外一个文件导入到光标所在位置

                                   ctrl+ww            跳到另一屏

 

 

 

gcc –E(预处理)/-S(汇编)/-c(连接)/-v(显示编译过程) 文件名 -o(重命名)

gcc内部调用cc1编译器 as汇编器 collect2链接器

strip 可执行文件名       对代码进行瘦身

ldd 可执行文件              可查看程序用了哪些动态库

 

 

 

 

gdb调试器(gcc 文件名 –o 执行文件名 -g)

list(l) 行号                          显示源代码

break(b) 行号/函数名     加断点

info break(i b)   查看断点信息

run(r)                   执行

next(n)                单步执行,不进入函数

print(p)               打印变量

whatis 变量名       查看变量类型

delete(d) 断点编号          删除断点

b 17 if i==9               在条件等于9的时候设置断点

step(s)                 进入函数调用

finish                         退出函数

breaktrace(bt)   查看函数调用栈

 

 

 

 

处理段错误——会生成一个core文件,里面会显示在第几行出现错误:

  1. gcc –g
  2. ulimit -c unlimited
  3. ./a.out
  4. gdb ./a.out core.****

 

 

makefile

目标:依赖文件

Tab命令

第二种方式

$^    代表所有的依赖文件   [email protected]   代表目标文件

第三种方式

%.o:%.c

         gcc –c $^ -o [email protected]

 

可以在makefile里写clean功能,使用make clean

.PHONY:clean                           使clean保持最新

OBJS=main.o  \

plane.o

clean:

         rm –rf $(OBJS)                  这里的objs是前面定义变量

 

 

 

1、在scanf中”%*c”是读取并丢弃掉该字符,用于读取丢弃换行符

或”(空格)%c”          这个操作可以忽略字符之前的空白符

或“%[^;%*c]” 这个操作可以设置想读取的字符,属于输入格式化(不获取分号,例如数据库)

2、内存缓冲区在以下5种情况时才会将缓冲区中内容输出

         \n

         scanf

         exit

         内核缓冲区满

         fflush(stdout)

3、printf                           输出到屏幕

         fprintf                        输出到文件

         sprint                         输出到数组

 

 

 

 

linux读elf文件

readelf –h(头)/-a(全部)

看elf文件的汇编代码

objdump -dS

以上是关于vim文本编辑器的基本操作及gccgdb的基本使用方法的主要内容,如果未能解决你的问题,请参考以下文章

vim 用法

VI/VIM

Vi/Vim 基本用法

[Linux/Ubuntu] vi/vim 使用方法讲解

7.vim文本编辑及文件查找应用

[Linux/Ubuntu] vi/vim 使用方法讲解