更详细说明见:Linux中vim编辑器的总结
普通模式:光标移动 |
|
G Shift + g |
文件最后一行 |
gg 1gg 1G |
文件首行 |
0 ^ |
零,本行行首 |
$ |
本行行尾 |
n<Enter> |
数字n之后回车,下移n行 |
ngg nG |
移动到文件的第n行,常配合 :set nu |
H |
移动到本窗口的最上面一行 |
M |
移动到本窗口的最中间一行 |
L |
移动到本窗口的最下面一行 |
h ← |
左移一个字符 |
j ↓ |
下移一个字符 |
k ↑ |
上移一个字符 |
l → |
右移一个字符 |
普通模式:搜索与替换 |
|
/str |
从当前位置开始,向下寻找str字符串 |
?str |
从当前位置开始,向上寻找str字符串 |
n |
从当前位置开始,向下重复上一个搜索动作 |
N |
从当前位置开始,向上重复上一个搜索动作 |
:g/A/s//B/g |
把符合A的内容全部替换为B,斜线为分隔符(也可以是@、#等) |
:%s/A/B/g |
把符合A的内容全部替换为B,斜线为分隔符(也可以是@、#等) |
:n1,n2s/A/B/g |
将第n1至n2行中符合A的内容全部替换为B,斜线为分隔符 |
普通模式:复制(y,yank)、粘贴p(paste)、删除d(delete) |
|
yy Y |
复制当前行 |
nyy |
复制从当前行开始向下的n行 |
p |
小写,粘贴到当前行的下一行 |
P |
大写,粘贴到当前行的上一行 |
dd |
删除当前行 |
ndd |
删除从当前行开始向下的n行 |
x |
删除光标所在的字符 |
u |
恢复/回滚前一个操作 |
. |
重复前一个操作 |
进入编辑模式 |
|
i |
当前光标处插入文字 |
a |
当前光标处的下一个字符插入文字 |
I |
在当前行行首第一个非空格字符处插入文字 |
A |
在当前行行尾插入文字 |
O |
在当前行的上一行插入新的一行 |
o |
在当前行的下一行插入新的一行 |
ESC |
退出编辑模式,回到命令模式 |
命令行(末行)模式 |
|
:wq |
保存退出 |
:wq! |
退出并强制保存 |
:q! |
强制退出 |
:n1,n2 w filename |
从第n1至第n2行保存成文件filename中 (剪切并另存为) |
:n1,n2 co n3 |
将第n1至第n2行复制到第n3行的下面 |
:n1,n2 m n3 |
将第n1至第n2行移动到第n3行的下面 |
:!command |
暂时离开vi,到命令行模式下执行command命令并显示执行结果 |
:set nu |
显示行号 |
:set nonu |
不显示行号 |
:vs filename |
垂直分屏显示当前文件和filename文件的内容 |
:sp filename |
水平分屏显示当前文件和filename文件的内容 |
Ctrl + V |
可视块模式(竖行操作模式) |
多文件分屏对比
[root@ant tmp]# vimdiff ./fstab /etc/fstab