7 vi 编辑器
1、vim编辑器的工作模式
命令模式,插入模式,可视化模式,扩展命令模式。
2、命令模式
2.1、光标定位
hjkl:小键盘上下左右移动
0 $:行头、行尾
gg G:第一行、最后一行
30G:进入第30行
/string:快速定位到某一行
/^d:搜索以d开头的行
/txt$:搜索以txt$结尾的行
2.2、文本编辑
y 复制 yy 3yy ygg yG:复制一行、从当前行往下复制3行,复制当前行至第一行的所有行,复制当前行至最后一行的所有行。
d 删除 dd 3dd dgg dG:同上。
x 删除光标所在的字符
D 从光标处删除到行尾
u undo撤销
^r redo
r 修改一个字符
2.3、进入其他模式
i 进入插入模式
o 另起一行,进入插入模式
A 调到行尾,进入插入模式
v 进入可视模式
^v 进入可视块模式
V 进入可视行模式
R 进入替换模式
2.4、插入模式
^p:自动补全
块插入:^v shift+i 插入字符 esc
块替换:ctrl + v 进入块选择,r 输入替换的字符
块删除:选择块,d|x
块复制:选择块,y
2.5、扩展命令模式
保存退出
:10 进入第10行
:w 保存
:q 退出
:q! 强制退出
:wq 保存退出
:w! 强制保存
查找替换
:range s/old/new/option
:1,5 s/ifdown/latiny 将1至5行的第一个ifdown替换成latiny
:5,$ s/ifdown/latiny 将5至最后一行的第一个ifdown替换成latiny
:1,$ s/ifdown/latiny/g 将1至最后一行的所有的ifdown替换成latiny %表示全文,g表示整行
:% s/ifdown/latiny 所有行的第一个ifdown替换成latiny
:,8 s/old/new/ 从当前行到第8行
:4,9 s/^#// 4-9行开头的#替换为空
:5,10 s/.*/#&/ 5-10行前加入#字符, .*表示整行,&引用查找的内容
读入文件、写文件
:w 存储到当前文件
:w /tmp/2.txt 另存为 /tmp/2.txt
:1,3 w /tmp/2.txt 当前文件1至3行另存为 /tmp/2.txt
:r /etc/hosts 读入文件到当前行后
:5 r /etc/hosts 读入文件到第5行
设置环境 - 临时设置
:set nu 设置行号
:set ic 不区分大小写
:set ai 自动缩进
:set list 显示控制字符
:set nonu 取消设置行号
:set noic 取消不区分大小写
永久修改设置
/etc/vimrc 修改vim环境配置文件
~/.vimrc
set ic
set nu
打开多个文件
vim -O /root/test/directory/a.txt /root/test/directory/b.txt 大写O水平显示两个文件, 小写o垂直显示两个文件
^ww 切换打开的两个文件
vimdiff /root/test/directory/a.txt /root/test/directory/b.txt 查看两个文件的不同。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?