目录
3、使用/error查找文档中的"error"关键词,用n/N进行正向/反向查找
2、使用O在当前行上方插入新行,输入内容后按ESC返回命令模式
1、执行:set nu显示行号,再用:set nonu取消显示
3、对10-20行执行范围替换: :10,20s/error/warning/g
5、练习:X设置文件密码,再通过:set key=""取消密码
一、VIM编辑器
1、VIM操作模式
1.1、命令模式
操作 | 作用 |
---|---|
G | 跳转到文件末尾 |
gg | 返回文件首行 |
home键或者^ | 跳到首字符 |
end键或者$ | 跳到尾字符 |
yy | 单行复制 |
nyy | n行复制 |
P | 将光标移动到想要粘贴位置的上一行 |
p | 将光标移动到想要粘贴位置的下一行 |
u | 撤销操作,注意:进行保存且退出后无效 |
dd | 单行删除 |
ndd | n行删除G |
D或者d$ | 从所在行的光标处删除到末尾 |
d^ | 从所在行的光标处删除到行首 |
r | 替换某一个字符 |
del键 | 光标所在字符的后一个字符 |
/关键字 | 根据关键字查找,n:上翻;N:下翻 |
ZZ | 保存且退出 |
命令模式练习
1、打开任意文本文件,使用gg
跳转到首行,再用G
跳转到末尾
2、在命令模式下:
用yy
复制当前行
用p
粘贴到下一行
用5dd
删除包括当前行在内的5行内容
3、使用/error
查找文档中的"error"关键词,用n/N
进行正向/反向查找
4、用r
命令将光标所在字符替换为"X"
5、用d$
删除从光标位置到行尾的所有内容
1.2、插入模式
作用:进行文件内容编辑
操作 | 作用 |
---|---|
a | 进入插入模式,在当前光标的后一个字符插入 |
o | 在当前光标的下一行插入 |
i | 在当前光标所在字符插入,返回命令模式时会将光标迁移一个字符 |
A | 在光标所在行的尾字符后插入 |
I(大写i) | 在光标所在行的首字符插入 |
O | 在当前光标的上一行插入 |
ESC(按键) | 返回命令模式 |
插入模式练习
1、在命令模式下:
-
按
o
在下方新建行并输入文本 -
-
按
A
跳转到行尾继续输入 -
-
按
I
跳转到行首输入 -
2、使用O
在当前行上方插入新行,输入内容后按ESC返回命令模式
3、练习从插入模式返回命令模式时:
-
用
i
进入插入模式,观察返回时光标位置变化 -
i 插入后退出,向前移动一格
-
-
-
用
a
进入插入模式,比较光标位置差异 -
a进入插入,光标向后移动一格,退出返回原点
-
1.3、末行模式
作用:保存、退出及字符串替换
操作 | 作用 |
---|---|
: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 | 范围替换,所有匹配替换,当包含路径时,#替换/作为匹配符号 |
末行模式练习
1、执行:set nu
显示行号,再用:set nonu
取消显示
2、使用:15
直接跳转到第15行
3、对10-20行执行范围替换: :10,20s/error/warning/g
4、执行全文替换:
:%s/error/ERROR/
替换每行第一个"error"
:%s/error/ERROR/g
替换所有"error"
5、练习:X
设置文件密码,再通过:set key=""
取消密码
6、用:w test_backup.txt
另存为副本文件
1.4、视图模式
操作 | 作用 |
---|---|
v | 进行行选中 |
1.5、视图快模式
操作 | 作用 |
---|---|
ctrl + v | 进行列选中 |
选中要删除的“#”,按del | 批量删除注释 |
选中要添加的列,输入 大写i ,输入#,按两次ESC | 批量增加注释 |
视图模式练习
用v
进入行选择模式:
选中3行后按y
复制
移动光标后用p
粘贴
用Ctrl+v
进入列块模式:
-
纵向选中多列字符后按
d
删除 -
-
选中列后先按
I后#
添加注释,按两次ESC生效
批量注释
-
用列块模式选中多行行首
-
-
插入
#
注释符 -
-
再次用列块模式删除注释符
-
2、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
插入当前日期到光标下方
用:5r !ls -l
将命令结果插入到第5行下方
尝试:!ls
执行外部命令后返回编辑界面
注意:
所有操作前建议先备份文件
谨慎使用:!command
执行会修改文件内容的命令
批量操作前可用v
模式确认选中范围
替换操作建议先用/
确认匹配内容
涉及密码操作时注意文件权限安全