以下内容主要摘自《鸟哥的Linux私房菜》基础学习篇(第四版)vim程序编辑器部分
Vim是Linux系统下的一种文本编辑器,它是Vi的高级版本。
模式说明
一般Vim可以分为3种模式,一般命令模式、编辑模式与命令行模式。
- 一般命令模式
使用vim打开一个文件就直接进入了一般命令模式(这是默认的模式,也简称为一般模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,也可以使用【删除字符】、【删除正行】或【复制、粘贴】来处理文件内容。 - 编辑模式
在一般命令模式中可以进行删除、复制、粘贴等操作,但无法编辑文件内容,在一般命令模式中 可以通过【i, I, a, A, o, O, r, R】等任何一个按键进入编辑模式。当在界面的左下角出现【INSERT】或【REPLACE】的字样才可以进行编辑。在此模式下按【Esc】按键即可推出编辑模式。 - 命令行模式
在一般模式当中,输入【:/ ?】三个中的任意一个按钮,就可以将光标移动到最下面的一行,此时就进入到命令行模式。在此模式中,提供【查找数据】的操作,读取、保存、批量替换字符、推出Vim、显示行号等操作也是在此模式下完成。
按键说明
- 一、一般命令模式下可用的功能按键说明,光标移动、查找替换、复制粘贴,
光标移动按键 | 作用 |
---|---|
h或向左箭头键 ← \leftarrow ← | 光标向左移动一个字符 |
j或向下箭头键 ↓ \downarrow ↓ | 光标向下移动一个字符 |
k或向上箭头键 ↑ \uparrow ↑ | 光标向上移动一个字符 |
l或向右箭头键 → \rightarrow → | 光标向右移动一个字符 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格浮的上一行 |
n<space> | n为数字,<space>为空格键,光标向后移动n个字符距离 |
0或功能键[home] | 这是数字【0】,移动到这一行的最前面字符处 |
$或功能键[end] | 移动到这一行的最后面字符 |
G | 移动到这个文件的最后一行 |
nG | n为数字,移动到这个文件的第n行 |
gg | 移动到这个文件的第一行 |
n<Enter> | n为数字,光标向下移动n行 |
查找与替换按键 | 作用 |
---|---|
\word | 向光标之下寻找一个名为word的字符串 |
?word | 向光标之上寻找一个名为word的字符串 |
n | n为英文按键,代表【重复前一个查找的操作】。例:若前一个操作是/vbird,按下n之后,则执行操作/vbird |
N | N为英文按键,与n的效果相反,为【反向】进行前一个查找操作,例:执行/vbird操作之后,按下N之后,则执行操作?vbird |
:n1,n2s/word1/word2/g | n1,n2为数字,在第n1与n2行之间寻找字符串word1,并将其替换为字符串word2 |
:1,$s/word1/word2/g | 从第一行到最后一行寻找字符串word1,并将其替换为字符串word2 |
:1,$s/word1/word2/gc | 从第一行到最后一行寻找字符串word1,并将其替换为字符串word2,且在替换前显示提示字符给用户确认(confirm)是否需要替换 |
删除、复制与粘贴 | 作用 |
---|---|
x 与 X | 在一行当中,x 为向后删除一个字符,X 为向前删除一个字符 |
nx | n 为数字,连续向后删除 n 个字符 |
dd | 删除光标所在的那一整行 |
ndd | n 为数字,删除光标所在的向下 n 行 |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除光标所在处到该行的最后一个数据 |
d0 | 删除光标所在处,到该行的最前面一个字符 |
yy | 复制光标所在的那一行 |
nyy | n 为数字,复制光标所在的向下 n 行 |
y1G | 复制光标所在行到第一行的所有数据 |
yG | 复制光标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所与数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p 与 P | p 为将已复制的数据在光标下一行粘贴,P 则为粘贴在光标上一行。 |
J | 将光标所在行与下一行数据结合成同一行 |
c | 重复删除多个数据 |
u | 恢复前一个操作 |
[Ctrl] + r | 重做上一个操作 |
. | 这是一个小数点,表示重复前一个操作 |
- 二、一般命令模式切换到编辑模式可用的按键说明
按键 | 作用 |
---|---|
i 与 I | 进入插入模式 i 为【从目前光标所在处插入】,I 为【在目前光标所在的第一个非空格符处开始插入】 |
a 与 A | 进入插入模式 a 为【从目前光标所在的下一个字符开始插入】,A 为【从光标所在行的最后一个字符处开始插入】 |
o 与 O | 进入插入模式 这是英文字母o的大小写,o 为【在目前光标所在的下一行插入新的一行】, O 为【在目前光标所在的上一行插入新的一行】 |
r 与 R | 进入替换模式 r 指挥替换光标所在的那个一字符一次;R 会一直替换光标所在的文字,直到按下 Esc 为止 |
[Esc] | 退出编辑模式,回到一般命令模式 |
- 三、一般命令模式切换到命令行模式的可用按键说明
按键 | 作用 |
---|---|
:w | 将编辑的数据写入硬盘文件中 |
:w! | 强制写入该文件 |
:q | 推出vim |
:q! | 强制退出不保存 |
:wq | 保存后退出,若为 :wq!则为强制保存后推出 |
ZZ | 大写的字母Z,若文件没有修改,则不保存退出,若文件已经被修改,则保存退出 |
:w [filename] | 将编辑的数据保存为另一个文件(类似于另存为新文件) |
:r [filename] | |
:n2,n2 w [filename] | 将n1到n2行的内容他保存为filename这个文件 |
:! command | 暂时退出Vim到命令行模式下执行 command 的显示结果。 |
:set nu | 显示行号,设置之后,会在每一行的前缀显示改行的行号 |
:set nonu | 与set nu相反,为取消行号 |