vim时linux下常用的编辑文本利器,我也用了一段时间,这里记录一下我在工作中常见的vim操作,一方面时加深记忆,另一方面也作为vim操作的一个图谱,查漏补缺。
vim <path>/filename
使用vim命令打开一个文件,打开文件后就可以对文本进行编辑了。
移动
j
:光标向下移动
k
:光标向上移动
h:
光标向左移动
l
:小写L
光标向右移动
50j
:光标向下移动50行,khl
同理
w
:光标移动到后(右边)一个单词的词首
b
:光标移动到前(左边)一个单词的词首
gg
:光标移动到文件首行
G
: 光标移动到文件末行^
: 光标移动到行首$
: 光标移动到行尾
插入
i
:光标签前插入
I
大写i
:光标所在行开头插入
a
:光标后插入
A
:光标所在行末尾插入
o
:在光标所在行的下一行插入新空白行
O
:在光标所在行的上一行插入新空白行
删除
x
:删除光标当前字符
dd
:删除光标所在行
5dd
:删除5行
d$
:从光标处开始删除,直到光标所在行末尾
dG
:从光标所在行开始删除,直到文件末尾
复制/剪贴(复制并删除)/粘贴
yy
:复制光标所在行
5yy
:复制5行
dd
:剪贴光标所在行(可以看一下“删除”的用法)
p
:粘贴
查找
/old
:在整个文件中查找old, 命令执行后,可以按n或N上下移动光标至找到的old
?old
: 在整个文件中查找old,命令执行后,可以按n或N上下移动光标至找到的old
模式
普通模式,vim打开文件
命令模式,按esc键然后输入命令,此时就是命令模式
编辑模式,通过插入、删除等命令进入编辑模式,对文本进行编辑
可视模式,打开文件后,按下v/V进入可视模式
搜索替换
格式如下:
:[range]s/old/new/[c,e,g,i]
, 找出old并用new替换,old支持正则
c
,每次替换前询问
e
,不显示错误
g
,替换前不询问,整行替换
i
,忽略大小写
:s/old/new
:在光标所在行中,找到第一个old,用new替换
:s/old/new/g
:在光标所在行中,找出所有old,用new替换
:123s/old/new
:在第123行,找出第一个old,用new替换
:123s/old/new/g
:在第123行,找出所有old,用new替换
:123,456s/old/new
:从123行到456行找出每行第一个old,用new替换
:123,456s/old/new/g
:从123行到456行找出每行所有old,用new替换
:123,s/old/new
:从123行到最后一行找出每行第一个old,用new替换
:123,s/old/new/g
:从123行到最后一行找出每行所有old,用new替换
:%s/old/new
:在整个文件中,找出每行的第一个old,用new替换
:%s/old/new/g
:在整个文件中,找出每行的所有old,用new替换
:%s/old/new/gi
:在整个文件中,找出每行的所有old(不区分大小写),用new替换
其它
:set nu
:显示行号
:set noun
:取消行号
:noh
:取消高亮显示