day4.2
day 4.2
vim编辑器
# vim编辑器
什么是vim?
vim是Linux系统中一个强大的文本编辑器
vim比vi强大
vim能干嘛?
编辑配置文件
写脚本
批量修改
查找内容
语法检测高亮显示
vim视图
vim的三种工作模式
命令模式
# 命令模式
最开始使用vim打开文件时,即进入命令模式
# 跳转光标
G:(shift+g) 将光标快速跳转到文件末尾
gg:将光标跳转到文件开头
Ngg:N代表阿拉伯数字,将光标跳转到第N行
$:将光标跳转到行末
^:将贯标跳转到行首
# 复制粘贴
yy:复制光标所在行内容
Nyy:N代表数字,复制光标所在行及后N行内容
p:将复制内容,粘贴到光标所在行的下一行
P(大写):将复制内容,粘贴到光标所在的上一行
# 删除剪切
dd:剪切,删除光标所在行的内容
Ndd|dNd:剪切,删除指定行数内容
dG:删除光标所在行到文件末尾的内容
D:将光标所在字符删除一直删到行末
x:剪切光标所在字符
X:删除光标所在字符前一个字符
# 撤销替换
r:替换光标所在内容
R:批量替换
u:撤销上一步操作
Ctrl+r:恢复撤销
编辑模式
# 进入编辑模式标识,左下角-- INSER --
a:在光标所在字符之后,进入编辑模式
A:将光标跳转到行末,并进入编辑模式
o:在光标所在的下一行,进入编辑模式
O:在光标所在的上一行,进入编辑模式
i:在光标所在字符前,进入编辑模式
r:将光标移动到行首,进入编辑模式
s:删除光标所在字符,进入编辑模式
S:删除光标所在一整行内容,进入编辑模式
从编辑模式切换回命令模式
esc
末行模式
只能从命令模式进入末行模式
# 文件的保存与退出
方式一:输入:
方式二:输入/
:w 保存
:q 退出
:wq(x) 保存退出
shift + zz 保存退出
:w! 强制保存
:q! 强制退出
:wq! 强制保存退出
# 内容查找
/(字符):查找想要查找的字符串,输入回车会高亮显示
按n:向下查找下一个字符串
按N:向上查找下一个字符串
# 内容替换
: %s#(原内容)#(要替换的内容)#g
%:表示所有行
s:表示替换
g:表示所替换的内容
c:表示提示
举例
随便查看一个文件
[root@localhost ~]# cat 2.txt
###ro1ot:x:0:0:root:/root:/bin/bash
##bin1:x:1:1:bin:/bin:/sbin/nologin
##dae1mon:x:2:2:daemon:/sbin:/sbin/nologin
##adm1:x:3:4:adm:/var/adm:/sbin/nologin
##lp:1x:4:7:lp:/var/spool/lpd:/sbin/nologin
##syn1c:x:5:0:sync:/sbin:/bin/sync
##shu1tdown:x:6:0:shutdown:/sbin:/sbin/shutdown
##hal1t:x:7:0:halt:/sbin:/sbin/halt
#全部替换为888
[root@localhost ~]# vim 2.txt
1 888888888ro1ot:x:0:0:root:/root:/bin/bash
2 888888bin1:x:1:1:bin:/bin:/sbin/nologin
3 888888dae1mon:x:2:2:daemon:/sbin:/sbin/nologin
4 888888adm1:x:3:4:adm:/var/adm:/sbin/nologin
5 888888lp:1x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 888888syn1c:x:5:0:sync:/sbin:/bin/sync
7 888888shu1tdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 888888hal1t:x:7:0:halt:/sbin:/sbin/halt
$s/#/888/g
局部替换
1 111111111ro1ot:x:0:0:root:fd:/bin/sd
2 888888bin1:x:1:1:bin:/bin:/sbin/nologin
3 888888dae1mon:x:2:2:daemon:/sbin:/sbin/nologin
4 888888adm1:x:3:4:adm:/var/adm:/sbin/nologin
5 888888lp:1x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 888888syn1c:x:5:0:sync:/sbin:/bin/sync
7 888888shu1tdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 888888hal1t:x:7:0:halt:/sbin:/sbin/halt
s#8#1#g
# 末行模式报错
文件内容修改后,不保存想退出 :q,必须加!退出
E37: No write since last change (add ! to override)
针对root用户,只读文件无法修改,保存退出需要加! :wq!
E45: 'readonly' option is set (add ! to override)
无法打开这个文件
E212: Unable to open and write fil
# 末行模式其他功能
:set nu 显示行号
:set ai 自动缩进
:set ic 不区分大小写
:set list 查看文件中制表符等
:set no(ai|ic|no|list)
视图模式
# 块视图模式
Ctrl + v 进入块视图模式
1.x 按光标删除选中的所有字符内容
2.批量修改文件
1)按Ctrl + v进入可视块视图模式
2)移动光标
-1.按下键
-2.Ngg
-3.G
3)按 Shift + i 进入编辑模式
4)输入"字符"
5)按ESC退出编辑模
扩展选项
# 文件对比命令
diff
vimdiff
# 编辑命令
vim -o:水平分割
vim -O:垂直分割
# 切换文件
Ctrl + ww
# 编辑文件指定的行
vim + N: N代表阿拉伯数字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了