1. vim的三种模式
1.1 普通模式(默认Normal)
在我们刚启动vi/vim时,此时我们就处在普通模式下。而在此状态下我们键盘输入会被vim解析成相应的指令并执行。在该模式下可以快速查找、定位、修改和删除代码。
- i :切换到输入模式,以输入字符;
- x :删除当前光标所在处的子符;
- : :切换到底部命令模式,在底行输入命令。
1.2 插入模式(Insert)
在命令模式下按下i键就进入了输入模式。在插入模式下,我们可以同其他普通编辑器一样输入,在输入完毕后,按ESC键就可以回到普通模式下。
1.3 可视模式
该模式简单来说也可以称为选中模式,类似于普通编辑器中的选中,选中一篇文字然后对选中的文字进行一些操作。在vim中可视模式分为了三类:普通选中、按行选中、按列选中。我们通过“v”来实现普通选中、通过"V"来实现按行选中、通过"ctrl+v"来实现列选中。同样,在执行完后续操作后,按ESC键就可以回到普通模式下。
2. vi/vim命令
2.1 进入vi的命令
命令 | 作用 |
vi filename | 打开或者新建文件,并将光标置于第一行首 |
vi +n filename | 打开文件,并将光标置于第n行首 |
vi + filename | 打开文件,并将光标置于最后一行首 |
vi +/pattern filename | 打开文件,并将光标置于第一个与pattern相匹配的行行首 |
vi -r filename | 在上次正编辑时发生系统崩溃,恢复filename |
vi filename......filename | 打开多个文件,进行依次编译 |
2.2 vim的插入模式操作
命令 | 作用 |
i | 光标所在位置插入 |
I | 光标所在行行首插入 |
o | 光标所在行下一行插入 |
O | 光标所在行的上一行插入 |
a | 光标所在字符的下一个字符插入 |
A | 光标所在行的行尾插入 |
s | 光标所在字符删除并插入 |
S | 光标所在行删除并插入 |
2.3 移动光标的命令
命令 | 作用 |
h | 光标左移一个字符 |
l | 光标右移一个字符 |
space | 光标右移一个字符 |
Backspace | 光标左移一个字符 |
k或ctrl+p | 光标上移一行 |
j或ctrl+n | 光标下移一行 |
Enter | 光标下移一行 |
w或W | 光标右移一个字至字首 |
b或B | 光标左移一个字至字首 |
e或E | 光标右移一个字至字尾 |
) | 光标移至句尾 |
( | 光标移至句首 |
} | 光标移至段落开头 |
{ | 光标移至段落结尾 |
nG | 光标移至第n行首 |
n+ | 光标下移n行 |
n- | 光标上移n行 |
n$ | 光标移至第n行尾 |
H | 光标移至屏幕顶行 |
M | 光标移至屏幕中间行 |
L | 光标移至屏幕最后行 |
O(数字0) | 光标移至当前行首 |
$ | 光标移至当前行尾 |
gg | 光标移动到文件的第一行 |
G | 光标移动到文件的最后 |
:数字 | 光标移动到指定的行 |
2.4 屏幕翻滚命令
命令 | 作用 |
ctrl+u | 向文件首翻半屏 |
ctrl+d | 向文件尾翻半屏 |
ctrl+f | 向文件尾翻一屏 |
ctrl+b | 向文件首翻一屏 |
nz | 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部 |
2.5 VIM中字符管理
命令 | 作用 |
yl | 复制一个字符 |
yw | 复制一个单词 |
yy |
复制一行 |
nyy | 复制多行 |
p | 粘贴 |
x | 删除光标所在字符,或者选中文字 |
dl | 删除一个字符 |
dd | 删除光标所在行 |
ndd | 删除多行 |
D | 删除至行尾 |
dw | 删除一个单词 |
u | 撤销上次命令 |
ctrl+r | 恢复撤销的命令 |
r | 替换当前字符(命令模式) |
R | 替换当前行光标后的字符 |
/str | 查找str(n查找下一个,N查找上一个) |
2.6 查找并替换
:%s/原字符/替换后字符/g
其中,%s表示全文所有行,g表示全文所出现原字符的列
示例:
- :%s/:/@/g 替换全文的:为@
- :1,5s/:/@/g 替换1-5行的:为@
- :/adm/,/halt/s/:/@/g 替换adm到halt之间的:为@
2.7 分屏功能
命令 | 功能 |
ctrl+w s | 上下分屏 |
ctrl+w v | 左右分屏 |
ctrl+w c | 关闭光标所在屏幕 |
ctrl+w 上下左右 | 光标移动到指定屏幕 |
:sp file2 | 同时编辑当前文件和file2 |
2.8 VIM命令模式下调整工作参数
vim临时设定
命令模式下:set 参数信息
例如:set nu 此设定为临时设定,vim关闭后设定消失
vim永久设定
在vim /etc/vimrc中,通过set 参数信息永久设定。
2.9 退出vi编辑器命令
命令 | 作用 |
:q |
退出,在文件内容没有被改变时使用 |
:q! |
强制退出不保存,在改变文件后不想保存时使用 |
:wq | 对vi编辑器中的文件进行保存并退出vi编辑器 |
:wq! | 强制退出保存 在对只读文件编写时使用,注意,所编辑的只读文件必须时 |