Vim 编辑器的常用操作汇总,高手必备!
一、vim 介绍
vim 是 vi 的扩展,是一个功能丰富的文本编辑器,对于一个运维人员的必备基础技能之一,就是熟练使用 vim/vi 编辑器。在最小化安装环境一般只有 vi,没有 vim,需要手动安装一下。
二、vim 模式
默认的编辑模式。从 shell 窗口打开文件进入的第一个模式,其他模式可以通过按 ESC 键回退到普通模式。
用于执行复杂查询命令,从普通模式输入“:”,“/”或“?”等符号即可进入命令模式,回车键表示输入完成
该模式就类似 window 中操作文本文件,普通模式下可通过输入“i”,“o”等字符即可进入插入模式。编辑完成后按 ESC 键退出到普通模式。
用于选定文本块;可以在正常模式下输入“v”(小写)来按字符选定,输入“V”(大写)来按行选定,或输入“Ctrl-V”来按方块选定。
三、每个模式的常用操作
1. vim 打开文件方法选项
说明
vim filename
正常打开vim文件
vim + filename
打开文件,并将光标置于最后一行
vim +n filename
打开文件,并将光标置于第n行
vim +/ssh passwd
打开文件,并将光标置于第一个与ssh匹配的位置
vim -r filename
恢复上次vim打开时崩溃的文件
2. 普通模式操作
说明
G
跳到最后一行
gg
跳到第一行
5G
跳到第5行
yy
复制当前行
5yy
复制从当前行往后的5行
p
粘贴已复制的行到光标后
P
粘贴已复制的行到光标前
dd
(1)剪切当前行,以p粘贴;(2)删除当前行
5dd
删除5行
dG
从当前行删到最后一行
D
从光标处删除到行尾
5dG
从当前行删到第五行
x
删除光标所在位置的字符
5x
删除光标所在位置的字符及往后的5个字符
X
删除光标所在位置的前一个字符
u
撤销之前的操作
Ctrl + r
反撤销(恢复撤销)
数字0或者^
将光标移动到当前行的行首
$
将光标移动到当前行的行尾
ctrl +f
向下翻页
ctrl +b
向上翻页
n
查找下一个相同的字符
N
查找上一个相同的字符
r
替换光标所在位置的字符
R
从光标当前位置开始替换字符,输入内容会覆盖后面等长的内容,按“Esc”结束输入
h
向左移动光标
j
向下移动光标
k
向上移动光标
l
向右移动光标
3. 命令模式常用命令操作
说明
:wq
保存退出
:wq!
强制保存退出
:q
不保存退出
:q!
强制退出,一般已经对文件内容已经进行了修改,不保存强制退出的情况使用
:set nu
设置行号显示
:set nonu
取消行号
:set list
取消行号
set paste
启用粘贴模式
set nopaste
关闭粘贴模式
:s/a/b/g
将当前光标所在行中所有a替换成b
:2,5s/a/b/g
将2-5行中所有a替换成b
:%s/a/b/g
将文件所有的a替换成b
/word
从文本查找字符串,按“n”可以查看下一个相同字符 .注意:查找会区分大小写
/^word
查询以work开头的行
/work$
查询以work结尾
?work
从文本查找字符串,按“n”可以查看上一个相同字符
4. 进入插入模式方法操作
说明
i
光标所在位置插入
I
光标所在位置行首插入
o
光标所在位置下一行插入
O
光标所在位置上一行插入
a
光标所在位置下一个字符的位置插入
A
光标所在位置行尾插
进入到插入模式后就如同进入一个文档文件,按ESC键退出到普通模式
5. 可视化模式常用操作普通模式进入可视化模式:
操作
命令
v
字符选择模式,选中光标经过的所有字符
V
行选择模式,选择光标经过的所有行
可视化模式可以实现批量的删除增加注释,生产环境经常使用。
四、vim 可能遇到的问题
出现上面的情况有两种可能:
重复编辑,在另外一个远端也有打开这个文件异常断开,在正在编辑时突然关机或网络断开的情况vim 他不是实时写入的机制,他会先把文件写到内存,等我们执行 w 操作以后,再写回到原文件。那么在写回原文件,或者执行 q 的放弃操作之前,会生成一个临时的文件,以 . 开头,以 .swp 结尾。
解决办法:直接删除自动生成的临时文件file.swp或者报错界面直接输入D放弃编辑