在 Linux 中开发C语言应用代码时,首先要进行源代码的编写。
vim 是 “Vi IMproved” 的简称,是一个代码编辑器,是 vi 编辑器的加强版,提供了众多文本操作。
1. vim 的启动和退出
在 Linux 终端命令提示符下输入vim(或 vim + 文件名),即可启动 vim 编辑器,例如:
vim filename
或者
vim
按下回车键后,Linux 会自动打开文件名为 “filename” 的文件的 vim 的全屏编辑界面。
当使用 “vim + 文件名” 的命令来启动 vim 时,若进行编辑的是当前工作目录下已存在的文件,启动后即可看到该文件中的内容;若是当前目录下不存在的文件,则系统首先创建该文件,再使用 vim 进行编辑。
若要退出 vim,先按下 “Esc” 键回到 vim 的普通模式(常用的工作模式在下文详细介绍),然后键入“:”,此时光标会停留在最下面一行(底行模式),再键入“q”,最后按下 “Enter” 键即可退出 vim。
2. vim的工作模式及其切换
Linux下默认不能使用鼠标,为了能够插入,删除,复制,粘贴数据,vim 将操作分为12种模式,常用的有三种,分别是:普通模式,插入模式,底行模式。
- 普通模式:完成命令操作。
启动 vim 后默认进入此模式,可以使用隐式命令(命令不显示)来实现光标的移动、复制、粘贴、删除等操作,但编辑器并不接受用户从键盘输入的任何字符来作为文档的编辑内容,不能将代码输入到文件。 - 插入模式:插入数据,做文字输入等。
用户输入的任何字符都被认为是编辑到某一个文件的内容,并直接显示在 vim 的文本编辑区,在该模式下可以将代码输入到文件。 - 底行模式:完成命令操作。
用户输入的任何字符串都会被当成命令,会在 vim 的最下面一行显示,按下回车键后便会执行该命令,有保存文件,退出编辑,文件替换,找字符串,列出行号等。如果不是一个有效的命令,则会出现错误提示。
3. vim的普通模式
vim 在普通模式下的主要操作是使用方向键或快捷键对当前光标进行定位,以及使用相应的命令对当前文件中的文本进行诸如复制、粘贴、删除等编辑操作。这些命令说明如下所示。
移动光标的常用命令
命令 | 操作说明 |
---|---|
h | 向左移动光标 |
i | 向右移动光标 |
j | 向下移动光标 |
k | 向上移动光标 |
^ | 将光标移动到该行的开头(第一个非空字符) |
$ | 将光标移动到该行行尾,同键盘上的“End”键 |
0 | 将光标移动到该行行首,同键盘上的"Home"键 |
G | 将光标移动到文档最后一行的开头(第” 个非空字符) |
nG | 将光标移动到文档的第n行的开头(第一个非空字符),n为正整数 |
w | 光标向后移动一个字(单词) |
nw | 光标向后移动n个字(单词),n为正整数 |
b | 光标向前移动一个字(单词) |
nb | 光标向前移动n个字(单词) , n为正整数 |
e | 将光标移动到本单词的最后一个字符。如果光标所在的位置为本单词的最后一个字符,则跳到下一个单词的最后一个字符,“.”、 “,” 、“#”、 “/” 等特殊字符都会被当成一个字 |
{ | 光标移动到前面的“{”处 |
} | 光标移动到后面的“}”处 |
Ctrl+b | 向上翻一页,相当于Page Up |
Ctrl+f | 向下翻一页,相当于Page Down |
Ctrl+u | 向上移动半页 |
Ctrl+d | 向下移动半页 |
Ctrl+e | 向下翻一行 |
Ctrl+y | 向上翻一行 |
复制、粘贴的常用命令
命令 | 操作说明 |
---|---|
yy | |
yw | |
nyy | |
nyw | |
p |
删除文本的常用命令
命令 | 操作说明 |
---|---|
x | |
X | |
nx | |
nX | |
dw | |
ndw | |
d0 | |
d$ | |
dd | |
ndd | |
nd+上方向键 | |
nd+下方向键 |
其他常用命令
命令 | 操作说明 |
---|---|
r | |
R | |
u | |
U | |
. | |
ZZ | |
% |
-
gg/G:跳到文件的头/尾。
- p/P:向光标所在行下方/上方粘贴。
-
D:删除当前行光标后的数据。
-
ctrl+r:恢复撤销。
4. vim 的插入模式
普通模式->插入模式
- i:从光标当前位置开始输入。
- I:大写i,光标移到行首开始插入。
- a:从当前光标所在位置的下一个位置开始输入。
- A:光标移动到行末开始插入。
- o:从当前光标位置所在行的下方插入新的一行,从行首开始输入。
- O:从当前光标位置所在行的上方插入新的一行,从行首开始输入。
2. 插入模式->普通模式
按 ESC 键。
3. 移动光标
- 用小写英文字母h、j 、k、l,分别控制光标左、下、上、右移一格,也可以直接用键盘上的上下左右移动。
- G:移动到文本的最后。
- $:移动到光标所在行的“行尾”。
- ^:移动到光标所在行的“行首”。
- w:光标跳到下个字的开头。
- e:光标跳到下个字的字尾。
- b:光标回到上个字的开头。
- #l:光标移到该行的第#个位置。
- gg:进入到文本开始。
- shift + g:进入文本末端。
- ctrl + b:屏幕往“后”移动一页。
- ctrl + f:屏幕往“前”移动一页。
- ctrI + u:屏幕往“后”移动半页。
- ctrl + d:屏幕往“前”移动半页。
4. 删除文字x:删除光标所在位置的一个字符。
- #x:删除光标所在位置的“后面(包含自己在内)”#个字符。
- X:删除光标所在位置的“前面”一个字符。
- #X:删除光标所在位置的“前面"#个字符。
- dd:删除光标所在行。
- #dd:从光标所在行开始删除#行。
5. 复制粘贴
- #yw:复制#个字到缓冲区。
- yy:复制光标所在行到缓冲区。
- #yy:复制从光标所在的该行“往下数”#行文字。
- p:将缓冲区内的字符粘贴到光标所在位置。所有与"y”有关的复制命令都必须与"p”配合才能完成复制与粘贴功能。
6. 替换
-
r:替换光标所在处的字符。
-
R:替换光标所在处的字符,直到按下 ESC 键为止。
7. 撤销
- u:如果误执行一个命令,可以马上按下 u,回到上一个操作。按多次“u”可以执行多次撤销。
- ctrl+r:撤销的恢复。
8. 更改
- cw:更改光标所在处的字到字尾处。
- c#w:例如,c3w 表示更改3个字。
9. 跳至指定的行
- ctrl + g 列出光标所在行的行号。
- #G:例如,15G,表示移动光标至第15行行首。
5.vim的底行模式
在使用底行模式之前,先按 ESC 键确定已经处于正常模式,再按冒号即可进入底行模式。
1. 列出行号
- set nu:在文件中的每一 行前面列出行号。
2. 跳到文件中的某一行
- #:#号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
3. 查找字符串
- /关键字:先按 / 键,再输入想寻找的字符,如果第一 次找的关键字不是想要的,可以一直按 n 往后寻找到想要的关键字为止。
- ?关键字:先按 ? 键,再输入想寻找的字符,如果第一 次找的关键字不是想要的,可以一直按 n 往后寻找到想要的关键字为止。
4. 保存文件
- w:在冒号后输入字母 W,保存文件。
5. 离开
- q:按 q 退出,如果无法离开vim,可以在 q 后跟一个 ! 强制离开vim。
- wq:保存并退出。