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 查看两个文件的不同。
原文:https://www.cnblogs.com/Latiny/p/10746314.html