1、前言介绍
我们想要编写C语言代码,可以使用linux系统提供的工具进行代码的编写。代码编写完成之后,我们还需
要验证书写的代码是否正确。这就需要编译器来进程验证。 linux系统为我们提供了比较好的开发工具。
vim 编辑器 : 书写代码的工具
gcc 编译器 : 编译代码的工具
2、基本操作
1、打开或创建文件
#vim 文件名
说明:如果文件存在,直接打开,如果文件不存在,创建新文件
2、打开文件直接定位到某一行
#vim 文件名 +行号
例如: vim helloworld.c +2
#vim 文件名 +
说明:打开文件,光标直接定位到文件尾部
3、删除交换文件
如果vi异常退出,在磁盘上可能会保存有 交换文件(交换文件是一个隐藏文件,以.swp结尾)
下次使用vi编辑该文件时,按下字母d,就可以删除交换文件
4、 vi的三种工作模式
命令行模式:不能书写代码,只能进行复制,粘贴等命令操作
编辑模式:按下“i"键,在终端的左下角会出现一个叫做"insert”的关键字,便进入插入模式,可以书写代码
末行模式:代码书写完毕后,按下esc键,退出插入模式。在按下shift + “:” 键盘, 末行模式可以使用末行命令
5、末行命令
w 保存, write的缩写
q 退出, quit的缩写,如果修改后没有保存,不允许退出
wq【x】 保存并退出
q! 强制退出,
3、高级操作
1、移动
方向键
行内移动
w | word | 向后移动一个单词 |
b | back | 向前移动一个单词 |
e | end | 与b配合可以在一个单词的开始和结尾处切换 |
0 | 行首 | |
$ | 行尾 | |
^ | 行首,第一个不是空白的字符位置 |
行数移动
gg | go | 文件顶部 |
G | go | 文件末尾 |
数字gg | go | 移动到数字对应的行数 |
数字G | go | 移动到数字对应的行数 |
:数字 | 移动到数字对应的行数 |
屏幕移动
Ctrl+b | back | 向上翻页 |
Ctrl+f | forward | 向下翻页 |
H | Head | 屏幕顶部 |
M | Middle | 屏幕中间 |
L | Low | 屏幕底部 |
段落移动
vim中使用空行来区分段落
{ | 上一段 |
} | 下一段 |
2、括号切换
% | 括号匹配及切换 |
3、选中文本(可视模式)
v | 可视模式 | 从光标位置开始按照正常模式选择文本 |
V | 可视行模式 | 选中光标经过的完整行 |
Ctrl+v | 可视块模式 | 垂直方向选中文本 |
注意:可以与前面学习的移动命令配合使用
4、撤销和恢复撤销
u | undo | 撤销上次命令 |
Ctrl+r | redo | 恢复撤销的命令 |
5、删除文本
提示:如果使用 可视模式 已经选中了一段文本,那么无论使用d还是x,都可以删除选中的文本
x | cut | 删除光标所在的字符或选中的文本 |
d(移动命令) | delete | 删除移动命令对应的内容 |
dd | delete | 删除光标所在的行,可以使用ndd删除n行 |
D | delete | 删除至行尾 |
dG | 删除光标所在位置到文件的末尾 |
以下是常见的组合命令:
dw: 从光标位置删除到单词末尾
d0:从光标位置删除到一行的起始位置
d}:从光标位置删除到段落结尾
ndd:从光标位置向下连续删除n行
d5G:从光标所在行,删除到指定代码行的结尾
6、复制、粘贴
y(移动命令) | copy | 复制,例如: y},可以复制光标所在位置到段落结尾 |
yy | copy | 复制当前行 |
nyy | copy | 复制 n行 |
p | paste | 粘贴 |
注意:在其他软件中使用ctrl+c 复制的内容,不能在vi中使用p命令粘贴
可以在编辑模式下,使用鼠标右键粘贴
7、替换命令(轻量级修改)
r | replace | 替换当前字符 |
R | replace | 替换当前光标后的字符,按ESC回到命令模式 |
8、缩排和重复执行
>> | 向右增加缩进 |
<< | 向左减少缩进 |
. | 重复上次命令 |
注意:在可视模式下,缩排命令只需要使用一个>或<
9、查找
命令 | 功能 |
/str | 查找str |
n 查找下一个
N 查找上一个
10、单词快速匹配
* | 向下查找当前光标所在的单词 |
# | 向上查找当前光标所在的单词 |
注意: N和n 同样可以使用
11、查找并替换
在vim中替换命令需要在末行模式下执行
全局替换
一次性替换文件中的所有出现的旧文本
:%s/old/new/g
12、可视区域替换
(1)选中要替换文字的范围
:s/old/new/g
(2)在指定的范围内进行替换
:n1,n2s/old/new/g
说明: %s 全文替换 /g 不询问 /c 询问确认
12、插入命令
i | insert | 在当前字符前插入文本 |
I | insert | 在行首插入文本 |
o | 在当前行后面插入空行 | |
O | 在当前行前面插入空行 | |
a | append | 在当前字符后插入文本 |
A | append | 在行末插入文本 |
13、一次性给多行代码增加注释
1)首先按下键盘上的ESC键进入命令模式,并使用^将光标移动至行首
2)使用替换命令
:n1,n2s/^/注释符/g
14、一次性取消多行代码的注释
方法:
1)首先按下键盘上的ESC键进入命令模式,并使用^将光标移动至行首
2)使用替换命令
:n1,n2s/^注释符//g
15、末行命令扩展
:e 文件 名 | edit | 切换浏览文 件 | 当前文件修改后,如果没有保存,不能切换文件。 |
:n 文件 名 | new | 新建文件 | |
:w 文件 名 | write | 另存为 | 但仍然编辑当前文件,并不会切换 的作用 ,在实际应用中起到备份 |
16、显示行号
:set number