1.文件命令
快捷键 | 功能 |
vim file | 打开单个文件 |
vim file1 file2 file3 … | 同时打开多个文件 |
:e file | 在vim窗口中打开一个新文件 |
:split file | 在新窗口中打开文件 |
:bn | 切换到下一个文件 |
:bp | 切换到上一个文件 |
:args | 查看当前打开的文件列表,当前正在编辑的文件会用[]括起来 |
:e ftp://192.168.10.76/abc.txt | 打开远程文件,比如ftp或者share folder |
:e \qadrive\test\1.txt | 打开远程文件 |
1 | 1 |
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 啊! |
1 | 1 |
3.插入命令
快捷键 | 功能 |
i | 在当前位置前插入 |
I | 在当前行首插入 |
a | 在当前位置后插入 |
A | 在当前行尾插入 |
o | 在当前行之后插入一行 |
O | 在当前行之前插入一行 |
1 | 1 |
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行 |
1 | 1 |
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 | 行选择 |
1 | 1 |
6 撤销和重做
快捷键 | 功能 |
u | 撤销(Undo) |
U | 撤销对整行的操作 |
Ctrl + r | 重做(Redo) |
1 | 1 |
7.末行模式
快捷键 | 功能 |
w | 保存 |
q | 退出 |
q! | 强制退出 |
wq | 保存退出 |
:wq | 强制保存退出 |
e! | 放弃所有修改,从上次保存文件开始再编辑 |
w [filename] | 将编辑的数据储存成另一个文件(类似另存新档) |
1 | 1 |
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 | 注释整个文档 |
1 | 1 |
9.高级操作
快捷键 | 功能 |
:!<命令> | 临时执行一条命令 |
:r <file> | 将文件读入到本文档 |
:1,20w <file> | 将1-20行另存为其他文件 |
:20,30w >> <file> | 将20-30行追加到其他文件中 |
1 | 1 |
10.vim设置
#vim /etc/vimrc
指令 | 功能 |
set nu | 显示行号 |
set nonu | 不显示行号 |
set nohlsearsh | 关闭高亮 |
set hlsearsh | 打开高亮 |
syntax off | 关闭色彩 |
syntax on | 打开色彩 |
set ic | 查找时忽略大小写 |
set noic | 查找时对大小写敏感 |
set list | 显示不可见字符 |
1 | 1 |
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
完成相同的功能。