Vim是Linux上的主要编辑软件,Vim有三种工作模式:命令模式、插入模式、末行模式。

要掌握基本的三种模式的转换

  1. 插入模式转到命令模式:按 Esc 键

  2. 命令模式转到插入模式:按 i 建

  3. 命令模式转到末行模式:按:键

  4. 末行模式转到命令模式:按 Esc 键

    调试器gdb可以在程序中设置断点、查看变量值、一步步的地跟踪程序的执行过程,利用调试器的这些功能可以方便的找出程序中存在的非语法错误。

gdb调试的对象是可执行文件,而不是程序的源代码,如下步骤:

  1. gdb  可执行文件名

  2. (gdb)  l    //查看相对应程序的源码

  3. (gdb)  b  6     //设置断点,程序并没有执行到第6行,而是第5行。

  4. (gdb)  info  b     //查看断点的设置情况

  5. (gdb)  r    //运行代码至断点处

  6. (gdb)  p  n    //查看断点处的相关变量值

  7. (gdb)  n    //键入一次n运行一条语句

  8. (gdb)  c   //程序继续运行至断点处

  9. (gdb)  q   //退出gdb

Makefile:

Makefile是用来告诉make如何编译和连接一个程序,是make读入的唯一配置文件,在一个Makefile中通常包含以下内容:

  1. 需要由make工具创建的目标体,可以认为是目标文件、可执行文件。

  2. 要创建的目标体所以来的文件,即为依赖文件。

  3. 创建每个目标体时需要运行的命令。

它的格式一般为:

目标文件:依赖文件

   命令

注意:在Makefile中的每一个命令前必须要按Tab键

对于一般的Makefile编写方式在这里就不作累述,一下的是一个改良版的Makefile:

OBJS=main.o insert.o command.o kbd.o display.o utils.o files.o search.oedit=$(objects)    gcc -o edit $(objects)main.o=main.c defs.h    gcc -o main.o -c main.cinsert.o=insert.c defs.h buffer.h    gcc -o insert.o -c insert.ccommand.o=command.c defs.h command.h    gcc -o command.o -c command.ckbd.o=kbd.c defs.h command.h    gcc -o kbd.o -c kbd.cdisplay.o=display.c defs.h buffer.h    gcc -o display.o -c display.cutils.o=utils.c defs.h    gcc -o utils.o -c utils.cfiles.o=files.c defs.h command.h buffer.h    gcc -o files.o -c files.cclean:    rm edit $(OBJS)

下面这个又是个改良版的Makefile,比上面那个更为方便:

OBJS=main.o insert.o command.o kbd.o display.o utils.o files.o \search.oCC=gccCFLAGS=-Wall -o -gedit=$(objects)    $(CC) $^ -o $@   main.o=main.c defs.h    $(CC) $(FLAGS) -c $< -o $@insert.o=insert.c defs.h buffer.h    $(CC) $(FLAGS) -c $< -o $@command.o=command.c defs.h command.h    $(CC) $(FLAGS) -c $< -o $@kbd.o=kbd.c defs.h command.h    $(CC) $(FLAGS) -c $< -o $@display.o=display.c defs.h buffer.h    $(CC) $(FLAGS) -c $< -o $@utils.o=utils.c defs.h    $(CC) $(FLAGS) -c $< -o $@files.o=files.c defs.h command.h buffer.h    $(CC) $(FLAGS) -c $< -o $@clean:    rm edit $(OBJS)

$^ :所有不重复的依赖文件,并以空格分开

$< :第一个依赖文件的名称

$@ :目标文件的完整名称