VIM 必知必会12大类型操作 - Claire_level的个人页面 - 开源中国社区
VIM 必知必会12大类型操作
vi 基本操作
1、插入
i 在光标前插入
I 在行首插入
a 在光标后插入
A 在行末插入
o 在下一行插入
O 在上一行插入
r 输入替换光标位置字符
R 进入输入替换模式,输入时替换光标后字符
u 撤销上一步,在没有保存文件时一直有用
ESC 退出编辑模式
2、保存
:wq/ZZ 保存退出
:w 保存
:w! 强制保存
:w filename 文件另存为 filename
:n1,n2 w filename 将n1行到n2行的数据另存为filename
3、退出
:q 退出
:q! 强制不保存退出
:qw! 强制保存退出
:x 保存退出
4、光标移动
h、j、k、l 进行移动
H 定位到屏幕上面
L 定位到屏幕下面
M 定位到屏幕中间
$ 光标到行尾
0 光标到行首
G 光标到文档最后一行
gg 光标到文档第一行
/n 光标到文档第n行
nG 光标到文档第n行
:n 光标到文档第n行
n<enter>向下移动n行
n<space> 向后移动n字符
pageup | ctrl+b 向上翻页
pagedown | ctrl+f 向下翻页
5、复制/粘贴/删除
yy、Y 复制当前行
nyy、nY 复制从当前行开始的n行
p 粘贴到下一行
P 粘贴到上一行
dd 剪切当前行
ndd 剪切n行
p 粘贴到下一行
D 当前光标开始删除到行尾
dd 删除当前行
ndd 从当前行开始向后删除n行
d1G 删除第1行到当前行的数据
dnG 删除第n行到当前行的数据
dG 删除当前行到最后一行的数据
x 向后删除1个字符/删除光标所在字符
nx 向后删除n个字符/删除光标后n个字符
X 向前删除1个字符
:n1,n2G 删除指定范围的行
6、搜索
:set ic 设置搜索时不区分大小写
:set noic 设置关闭搜索时不区分大小写
/str 从光标位置向下搜索str
?str 从光标位置向上搜索str
n 找下一个
N 找上一个
7、替换
:%s/abc/123/g 把abc全部替换成123
:%s/abc/123/gc 同上,但需要用户一个个的确认替换
:n1,n2s/abc/123/g 把n1到n2行中abc全部替换成123
8、撤销
u 退回前一个动作
ctrl+r 重复前一个动作
:e! 文档还原到最原始状态
9、块操作
v字符选择 光标经过的字符被选中
V行选择 光标经过的行被选中
ctrl+v块选择 矩阵式选中
y 复制被选中的数据
d 删除被选中的数据
10、多文件编辑
vim file1 file2 同时编辑两个文件file1和file2
:files 列出vim当前打开的文件列表
:n 编辑下一个文件
:N 编辑上一个文件
11、多窗口操作
:sp file2 在打开一个文件后,用:sp在新窗口中打开另一个文件file2
ctrl+w -->j 窗口向下切换。先按ctrl+w,打开,再按j
ctrl+w -->k 窗口向上切换。先按ctrl+w,打开,再按k
12、定义快捷键
:map 定义快捷键
ctrl+v ctrl+p 获得快捷键,p是要设置的快捷键位
ctrl+v+p 获得快捷键
:map ^p I#<ESC> 定义ctrl+p快捷键,实现进入插入模式,在光标所在行行首添加#注释,并退回到命令模式
:map ^e Iaabbcc 定义ctrl+e快捷键,在光标前插入aabbcc
:map ^b 0x 定义ctrl+b快捷键,删除光标所在行前的#
:ab myname claire 自动替换,输入myname后自动替换为claire
:unab myname claire 取消自动替换,输入myname后自动替换为claire
13、连续行注释
n1,n2s/^、#/g 将n1至n2行前加#号
n1,n2s/^//g 去掉n1至n2行前的#号
n1,n2s/^#//g 去掉n1至n2行前的#号
n1,n2s/^/\/\//g 去掉n1至n2行前的//号
14、其它操作
set nu 显示行号(nu=number)
set nonu 取消等号(nonu= no number)
:r filename 把filename文件里的内容插入到当前光标所在的位置下
:!command 暂时离开vim,去执行command命令。 如(:!df -h)
:r !date 把当前系统时间导入到文件末尾