linux vim编辑gcc编译,Linux菜鸟学习笔记(一):vi编辑器和gcc编译器

一.Vi编辑器

三种模式:

命令行模式   文本输入模式   末行模式

一般操作:

l进入vi

vi filename  (例如$ vi  helloworld.c)

如果只键入vi,不带文件名,这样也可以进入vi编辑器,进行编辑,退出之前保存文件即可。

进入vi默认就是命令模式,这时输入的字母都将作为命令来解释,而不是文本输入。“~”符号表示空行。

如果希望在进入vi后,光标处于文件中指定的某行上,可在vi命令上加上行号和文件名,格式如下

vi  +行号 文件名 (例如$ vi  +5  helloworld.c)

如果希望在进入vi之后光标处于文件最末行,只需去掉命令中“+”后面的数字即可,格式如下

vi + 文件名 (例如$ vi  +  helloworld.c)

vi编辑器支持模式匹配,用户可以在命令中指定一个模式串,进入vi后,光标就处于文件中第一个与指定模式串相匹配的那行

vi + /模式字符串 文件名 (例如$ vi +/main helloworld.c)

vi支持同时打开多个文件,例如要打开当前目录下的所有.c文件和.h文件,并将当前编辑文件设置为main函数所在文件,只需执行下列命令

$vi +/main *.h *.c

l插入文本命令:i和I

i命令将文本插入到光标所在位置前。

I命令将文本插入当前行的行首。

l追加文本命令:a和A

a命令将新文本追加到光标所在位置之后。

A命令将新文本追加到所在行的行尾。

l空行插入命令:o和O

o命令在光标所在行的下面插入一个空行。

O命令在光标所在行的上面插入一个空行。

l删除的基本操作

x删除光标处的字符

dd删除光标所在的整行

d删除包括当前行在内的两行字符

l文本复制操作

yy 复制光标所在的整行

Y或y$复制从光标所在处开始到行尾的内容

y复制包括当前行在内的两行内容

l文本粘贴命令

p命令。粘贴当前缓冲区中的内容

l撤销命令

u命令,撤销上一次所在的操作(在一次切换到文本输入模式中输入的所有文本算一次操作)

U命令,一次性撤销自上次移动到当前行以来所过的所有操作。

l退出vi

在末行模式下,

:q 若当前内容已保存  直接退出,若当前内容未保存,则等待用户操作

:q! 强行退出vi编辑器。慎用!

:w 新文件名  保存不退出,相当于另存为。

:w! 新文件名  强制保存,不询问是否有重名文件。慎用!

:wq 先保存再退出,如果当前文件未命名,则需指定文件名

:x 如已保存,则直接退出,如未保存,则保存文件

l光标移动

h 左移一个字符

j 光标下移一行

k 光标上移一行

l 光标右移一个字符

l屏幕滚动

在命令模式和文本输入模式下均可以使用

Ctrl + u 将屏幕向前翻滚半屏

Ctrl + d 将屏幕向后翻滚半屏

Ctrl + f 将屏幕向文件尾方向翻滚一整屏

Ctrl + b 将屏幕向文件首方向翻滚一整屏

命令之前加数字n,翻滚n行,或移动n页

l查找命令

/string 从光标处向后查找

?string 从光标处向前查找

g/string 使光标停止在第一个检索到的string串的行首

l替换命令

:[range]/s/s1/s2/[option]

[range]表示检索范围"1, 10"。表示从第一行到10行。"%"表示整个文件。".,$"从当前行到文件尾

s为替换命令 。s1要被替换的串。s2为替换的串。

Option:/g在全局文件中进行替换。/c表示在每次替换之前需要用户确认。省略时仅对每行第一个匹配串进行替换。

l设置环境

末行模式下输入:

: set nu (nonu)

设置显示行号(或者不显示行号)

: syntax on(off)

设置语法高亮显示(不高亮显示)

二.gcc编译器

gcc编译流程:

n将C语言源程序预处理,生成.i文件

n预处理后的.i文件编译成为汇编语言,生成.s文件

n将汇编语言文件经过汇编,生成目标文件.o文件

n将各个模块的.o文件链接起来生成一个可执行程序文件

常用选项汇总:

-c 编译、汇编指定的源文件,但是不进行链接

-S 编译指定的源文件,不进行汇编

-E 预处理指定的源文件,不进行编译

-o 编译成可执行文件

-I directory 指定include包含文件的搜索目录

-g 生成调试信息,可被调试器调试