1.文件命令
快捷键 |
功能 |
vim file |
打开单个文件 |
vim file1 file2 file3 … |
同时打开多个文件 |
:e file |
在vim窗口中打开一个新文件 |
:split file |
在新窗口中打开文件 |
:bn |
切换到下一个文件 |
:bp |
切换到上一个文件 |
:args |
查看当前打开的文件列表,当前正在编辑的文件会用[]括起来 |
打开远程文件,比如ftp或者share folder |
|
打开远程文件 |
2.多窗口情况下的按键
快捷键 |
操作说明 |
:sp [filename] |
开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新文件,否则表示两个窗口为同一个文件内容(同步显示)。 |
[ctrl]+w+ j [ctrl]+w+↓ |
按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下箭头键),则光标可移动到下方的窗口。 |
[ctrl]+w+ k [ctrl]+w+↑ |
同上,不过光标移动到上面的窗口。
|
[ctrl]+w+ q |
其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利用 [ctrl]+w+↓ 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+w+q 啊! |
3.插入命令
快捷键 |
功能 |
i |
在当前位置前插入 |
I |
在当前行首插入 |
a |
在当前位置后插入 |
A |
在当前行尾插入 |
o |
在当前行之后插入一行 |
O |
在当前行之前插入一行 |
4.移动命令
快捷键 |
功能 |
Ctrl+b |
向上翻页 = Pgup |
Ctrl+f |
向下翻页 = PgDn |
Ctrl+d |
向下移动半页 |
Ctrl+u |
向上移动半页 |
G |
移动到页末 |
gg |
移动到页头 |
nG |
40G 移动到第40行 |
ngg |
快速跳到文件的第N行 |
h |
左移一个字符 |
l |
右移一个字符(w快速) |
k |
上移一个字符 |
j |
下移一个字符 |
20j |
向下移动20行 |
0 | Home |
到行首 |
$ | End |
到行尾 |
: 2467 |
跳到2467行 |
5.复制,粘贴,删除
快捷键 |
功能 |
x |
向后删除一个字符 = Delete |
X |
向前删除一个字符 = backspace |
dd |
直接删除光标所在行 (剪切) |
D d$ |
删除光标位置到本行结尾 |
d0 |
删除光标位置到本行开头 |
ndd |
删除n行 |
yy |
复制光标所在行 |
nyy |
拷贝当前后开始的n行 |
p |
粘贴到光标所在的下行 |
:1,10d |
删除或剪切1-10行 |
ctrl+v |
块选择 014b-vim块操作 |
shift+v |
行选择 |
6 撤销和重做
快捷键 |
功能 |
u |
撤销(Undo) |
U |
撤销对整行的操作 |
Ctrl + r |
重做(Redo) |
7.末行模式
快捷键 |
功能 |
w |
保存 |
q |
退出 |
q! |
强制退出 |
wq |
保存退出 |
:wq |
强制保存退出 |
e! |
放弃所有修改,从上次保存文件开始再编辑 |
w [filename] |
将编辑的数据储存成另一个文件(类似另存新档) |
8.查找替换
?[n,m]s/<查找关键字>/<替换关键字>/[g]
快捷键 |
功能 |
:/<查找的关键字> |
查找替换(n下一个 N上一个) |
:s/this/that/ |
将本行第一个this替换成that |
:s/this/that/g |
将本行所有this替换成that |
:1,10s/this/that/g |
将1到10行所有的this替换成that |
:10,$s/this/that/g |
将10到最后行所有的this替换成that |
:.,.+10s/this/that/g |
将本行到本行后10行this替换成that |
:.,.-10s/this/that/g |
将本行到本行前10行this替换成that |
:%s/this/that/g |
将所有行this替换成that |
:10,20s/^/#/g |
在第10行知第20行每行前面加#,用于注释 |
:3,5 s/^#//g |
解除3-5行的注释 |
1,$ s/^/#/g |
注释整个文档 |
9.高级操作
快捷键 |
功能 |
:!<命令> |
临时执行一条命令 |
:r <file> |
将文件读入到本文档 |
:1,20w <file> |
将1-20行另存为其他文件 |
:20,30w >> <file> |
将20-30行追加到其他文件中 |
10.vim设置
#vim /etc/vimrc
指令 |
功能 |
set nu |
显示行号 |
set nonu |
不显示行号 |
set nohlsearsh |
关闭高亮 |
set hlsearsh |
打开高亮 |
syntax off |
关闭色彩 |
syntax on |
打开色彩 |
set ic |
查找时忽略大小写 |
set noic |
查找时对大小写敏感 |
set list |
显示不可见字符 |
11.让vi有颜色
mv /usr/bin/vi /usr/bin/vi.bak
ln -s /usr/binvim /usr/bin/vi
12.vim导图
13.vim块操作
在windows word中用鼠标拖动,反白显示,表示选中文本块。在vim中也有此功能,可以对块整体操作。
一、可视模式
按v启用可视模式,之后移动光标可以选择。
如:
如果想整行操作,则用大写的V,再移动光标可以按行为单位进行选择。
二、列块操作
在 word中有一个功能,按alt加鼠标拖动,可以拖出矩形块,在vim同样具有此功能。
如:
方法是:
control+v,启用块可视模式,之后移动鼠标,可以选中某一个矩形块,对于有规律的表格可以用这个功能。
目前当前光标所在的位置是右下角,可以在这个块的四角进行移动光标,方法就是按o,O来切换四个顶点。
三、实例一
把上图中source列,移到open前面
(1)control+v,选中source列
(2)d 剪切列
(3)在open的前面,按p粘贴。
结果如下:
四、实例二
在选定行的vim行前面加上// ,一般在语言中表示注释
(1)control+v选定列(vim)
(2)按I插入//
(3)按esc
结果如下:
注意:在windows系统中 control+v被系统占用了,所以改为control+q完成相同的功能。