命令:vim 文件名 打开vim编辑器对文件进行编辑
[root@bogon text1]# vim test.txt
123
456
789
ewrtyu
qewrtyu
oiuyt
szxfg
rgfb
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
G 跳转到文件末尾
gg 返回文件首行
home键或者^ 跳到首字符
end键或者$ 跳到尾字符
yy 单行复制 p 将光标移动到想要粘贴位置的下一行
yy
复制当前行p
粘贴到下一行123
456
789
ewrtyu
qewrtyu
123
oiuyt
szxfg
rgfb
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
多了 1 行
nyy n****行复制 P 将光标移动到想要粘贴位置的上一行
3yy
复制当前行P
粘贴到上一行123
456
789
ewrtyu
qewrtyu
123
456
789
oiuyt
szxfg
rgfb
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
多了 3 行
u 撤销操作,注意:进行保存且退出后无效
dd 单行删除
ndd n 行删除 (用3dd`删除包括当前行在内的3行内容)
123
456
789
ewrtyu
qewrtyu
oiuyt
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
~
~
少了 3 行
D或者d$ 从所在行的光标处删除到末尾
(用D命令将光标qewrtyu所在字符后的wrtyu都删除)
123
456
X89
ewrtyu
qe
oiuyt
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
~
~
d^ 从所在行的光标处删除到行首
r 替换某一个字符 (用r
命令将光标所在字符替换为"X")
123
456
X89
ewrtyu
qewrtyu
oiuyt
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
~
~
del键 光标所在字符的后一个字符
/关键字 根据关键字查找,n:上翻;N:下翻
(使用/y关键词,用
n/N`进行正向/反向查找)
123
456
789
ewrtyu
qewrtyu
oiuyt
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
~
~
已查找到文件结尾,再从开头继续查找 4,1 全部
a :进入插入模式,在当前光标的后一个字符插入
o :在当前光标的下一行插入
i :在当前光标所在字符插入,返回命令模式时会将光标迁移一个字符
A :在光标所在行的尾字符后插入
I(大写i) :在光标所在行的首字符插入
O :在当前光标的上一行插入
ESC(按键) :返回命令模式
按o
在qe下方新建行并输入文本we123456789
123
456
X89
ewrtyu
qe
we123456789
oiuyt
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
~
-- 插入 --
oiuyt按A
跳转到行尾继续输入123123
123
456
X89
ewrtyu
qe
we123456789
oiuyt123123
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
~
-- 插入 --
qazwsxedc按I
跳转到行首输入123456
123
456
X89
ewrtyu
qe
we123456789
oiuyt123123
123456qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
~
12,5 全部
:w 保存
:q 不保存退出
:wq或:x 保存退出
! 强制
:X->输入密码->:wq 设置密码并保存退出
:X->回车两次->:wq 或者 :set key=“”->:wq 取消密码
:set nu 设置行号
:set nonu 取消行号
:nohl 取消高亮
:行号 跳转到指定行
:%s/keyword/neword/
全文替换,首个匹配替换,当包含路径时,#替换/作为匹配符号
:%s/keyword/neword/g
全文替换,所有匹配替换,当包含路径时,#替换/作为匹配符号
:指定行号s/keyword/neword/
指定行替换,首个匹配替换,当包含路径时,#替换/作为匹配符号
:指定行号s/keyword/neword/g
指定行替换,所有匹配替换,当包含路径时,#替换/作为匹配符号
:起始行号,结束行号s/keyword/neword/
范围替换,首个匹配替换,当包含路径时,#替换/作为匹配符号
:起始行号,结束行号s/keyword/neword/g
范围替换,所有匹配替换,当包含路径时,#替换/作为匹配符号
:set nu
显示行号,再用:set nonu
取消显示 1 123
2 456
3 X89
4 ewrtyu
5 qe
6 we123456789
7 oiuyt123123
8 123456qazwsxedc
9 rfvtgbyh
10 ujmikqa
11 qwdertyu
12 wdcrf
13 root
14 boou
15 bin
16 cet
17 sar
18 lib
~
~
~
:set nu
123
456
X89
ewrtyu
qe
we123456789
oiuyt123123
123456qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
~
:set nonu
:10
直接跳转到第10行 光标直接到第十行 1 123
2 456
3 X89
4 ewrtyu
5 qe
6 we123456789
7 oiuyt123123
8 123456qazwsxedc
9 rfvtgbyh
10 ujmikqa
11 qwdertyu
12 wdcrf
13 root
14 boou
15 bin
16 cet
17 sar
18 lib
~
~
~
:10
:10,15s/oo/zz/g
1 123
2 456
3 X89
4 ewrtyu
5 qe
6 we123456789
7 oiuyt123123
8 123456qazwsxedc
9 rfvtgbyh
10 ujmikqa
11 qwdertyu
12 wdcrf
13 rzzt
14 bzzu
15 bin
16 cet
17 sar
18 lib
~
~
~
:10,15s/oo/zz/g
:%s/123/aaaa/
替换每行第一个"123"成"aaaa" 1 aaaa
2 456
3 X89
4 ewrtyu
5 qe
6 weaaaa456789
7 oiuytaaaa123
8 aaaa456qazwsxedc
9 rfvtgbyh
10 ujmikqa
11 qwdertyu
12 wdcrf
13 rzzt
14 bzzu
15 bin
16 cet
17 sar
18 lib
~
~
~
:%s/123/bbbc/g
替换所有"123"成"bbbc" 1 bbbc
2 456
3 X89
4 ewrtyu
5 qe
6 webbbc456789
7 oiuytbbbcbbbc
8 bbbc456qazwsxedc
9 rfvtgbyh
10 ujmikqa
11 qwdertyu
12 wdcrf
13 root
14 boou
15 bin
16 cet
17 sar
18 lib
~
~
~
5 次替换,共 4 行
:X
设置文件密码,再通过:set key=""
取消密码 Warning: Using a weak encryption method; see :help 'cm'
输入密码: *
请再输入一次: *
:set key="" 15,1 全部
用:w 12.tre
另存为副本文件
"12.tre" [新] 18L, 120C 已写入 15,1 全部
[root@bogon text1]# ls
12.tre test.txt tex11
**命令:**v
案例:
用v
进入行选择模式:
y
复制 复制前三行123
456
789
ewrtyu
qewrtyu
oiuyt
szxfg
rgfb
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
lib
~
~
复制了 4 行
P
粘贴 在szxfg上添加复制内容按P(大写P)123
456
789
ewrtyu
qewrtyu
oiuyt
123
456
789
szxfg
rgfb
qazwsxedc
rfvtgbyh
ujmikqa
qwdertyu
wdcrf
root
boou
bin
cet
sar
5、试图快模式
命令:
ctrl + v 进行列选中
选中要删除的“#”,按del 批量删除注释
选中要添加的列,输入 大写i ,输入#,按两次ESC 批量增加注释
案例
用Ctrl+v
进入列块模式:
1 123
2 456
3 789
4 ewrtyu
5 qewrtyu
6 oiuyt
7 123
8 456
9 789
10 szxfg
11 rgfb
12 qazwsxedc
13 rfvtgbyh
14 ujmikqa
15 qwdertyu
16 wdcrf
17 root
18 boou
19 bin
20 cet
21 sar
-- 可视 块 --
按d
删除,删除首字符
1 123
2 456
3 789
4 wrtyu
5 ewrtyu
6 iuyt
7 123
8 456
9 789
10 szxfg
11 rgfb
12 qazwsxedc
13 rfvtgbyh
14 ujmikqa
15 qwdertyu
16 wdcrf
17 root
18 boou
19 bin
20 cet
21 sar
选中列后按I#
添加注释,按两次ESC生效
批量注释:
用列块模式选中多行行首
前十行插入#
注释符
1 #123
2 #456
3 #789
4 #ewrtyu
5 #qewrtyu
6 #oiuyt
7 #123
8 #456
9 #789
10 #szxfg
11 rgfb
12 qazwsxedc
13 rfvtgbyh
14 ujmikqa
15 qwdertyu
16 wdcrf
17 root
18 boou
19 bin
20 cet
21 sar
d
删除注释符. 1 123
2 456
3 789
4 ewrtyu
5 qewrtyu
6 oiuyt
7 123
8 456
9 789
10 szxfg
11 rgfb
12 qazwsxedc
13 rfvtgbyh
14 ujmikqa
15 qwdertyu
16 wdcrf
17 root
18 boou
19 bin
20 cet
21 sar
5、vim高级用法
:r!command
将命令结果插入文件,command命令的结果插入光标下一行
:nr! command
将命令结果插入文件,command命令的结果插入n行后
:m,n! command
使用页面内容作为输入,command以m,n之间的行作为标准输入,
标准输出会代替m,n之间的行. 注意这个操作似乎是不可用ctrl+r撤销的。要谨慎使用。
:! /bin/bash
暂时离开vim来执行命令,使用完sh后exit又可以返回vim
案例:
:r !date
插入当前日期到光标下方 4 ewrtyu
5 qewrtyu
6 oiuyt
7 123
8 456
9 789
10 szxfg
11 rgfb
12 qazwsxedc
13 rfvtgbyh
14 ujmikqa
15 qwdertyu
16 wdcrf
17 root
18 boou
19 bin
20 cet
21 sar
22 lib
23
24 2025年 05月 13日 星期二 19:11:09 CST
:5r !ls -l
将命令结果插入到第5行下方 5 qewrtyu
6 总用量 44
7 -rw-r--r--. 2 root root 6 5月 9 16:57 001.txt
8 -rw-r--r--. 2 root root 6 5月 9 16:57 2.txt
9 -rw-r--r--. 1 root root 31 5月 9 16:59 3.txt
10 drwxr-xr-x. 2 root root 39 5月 12 18:34 aa
11 -rw-------. 1 root root 1698 5月 8 02:29 anaconda-ks.cfg
12 drwxr-xr-x. 2 root root 22 5月 12 16:17 bb
13 -rwxr-xr-x. 1 root root 18523 5月 13 14:16 elousi.sh
14 -rw-r--r--. 1 root root 1746 5月 8 02:32 initial-setup-ks.cf g
15 -rw-r--r--. 1 root root 168 5月 13 19:15 test.txt
16 drwxr-xr-x. 3 root root 49 5月 13 16:58 text1
17 drwxr-xr-x. 2 root root 6 5月 8 02:34 公共
18 drwxr-xr-x. 2 root root 6 5月 8 02:34 模板
19 drwxr-xr-x. 2 root root 6 5月 8 02:34 视频
20 drwxr-xr-x. 2 root root 6 5月 8 02:34 图片
21 drwxr-xr-x. 2 root root 6 5月 8 02:34 文档
22 drwxr-xr-x. 2 root root 6 5月 8 02:34 下载
23 drwxr-xr-x. 2 root root 6 5月 8 02:34 音乐
24 drwxr-xr-x. 2 root root 6 5月 8 02:34 桌面
多了 19 行
:!ls
执行外部命令后返回编辑界面在末行模式执行:!ls
请按 ENTER 或其它命令继续
001.txt anaconda-ks.cfg initial-setup-ks.cfg 模板 下载
2.txt ass test.txt 视频 音乐
3.txt bb text1 图片 桌面
aa elousi.sh 公共 文档
请按 ENTER 或其它命令继续
执行ls
[root@bogon ~]# ls
001.txt anaconda-ks.cfg initial-setup-ks.cfg 模板 下载
2.txt ass test.txt 视频 音乐
3.txt bb text1 图片 桌面
aa elousi.sh 公共 文档
注意:
:!command
执行会修改文件内容的命令v
模式确认选中范围/
确认匹配内容