Linux 基础_vi 重器
VI重器
VI编辑器控制流程
命令模式:
1、光标定位
hjkl //上下左右;
0 $ //定位一行中的开头和结尾;
gg G //文件的第一行和文件的最后一行;
3G //进入第三行;
/string //快速定位到某一行(使用n|N可以循环)
/txt$ //查找所有以txt结尾的行
/^d //查找所有以d开头的行
2、文本编辑(少量)
y //yy 3yy ygg yG
d //dd 3dd dgg dG
p
x //删除光标所在的字符
D //从光标处删到行尾
u // undo 撤销
^r //redo 重做
r //可以用来修改一个字符
ctrl+p //单词自动补齐
3、进入其他模式
a //进入插入模式;
i //进入插入模式;
o //进入插入模式;
A //进入插入模式;
: //进入末行模式(扩展命令模式)
v //可视模式
^v //可视块模式
V //可视行模式
R //替换模式
4、插入模式
可视块模式:
块插入(在指定块前加入字符): 选择块,I 在块前插入字符, ESC
块替换: 选择块,r 输入替换的字符
块删除: 选择块,d | x
块复制: 选择块,y
5、拓展命令模式
a. 保存退出
:10 进入第10行
:w 保存
:q 退出
:wq 保存并退出
:w! 强制保存
:q! 不保存并退出
:wq! 强制保存退出
:x 保存并退出 ZZ
b、查找替换
:范围 s/old/new/选项
:1,5 s/root/yang/ 从1-5行的root 替换为yang
:5,$ s/root/yang/ $表示最后一行
:1,$ s/root/yang/g == :% s/root/yang/g %表示全文 g表示全局
:% s#/dev/sda#/var/ccc#g
:,8 s/root/yang/ 从当前行到第8行
:4,9 s/^#// 4-9行的开头#替换为空
:5,10 s/.*/#&/ 5-10前加入#字符
c. 读入文件/写文件(另存为)
:w 存储到当前文件
:w /tmp/aaa.txt 另存为/tmp/aaa.txt
:1,3 w /tmp/2.txt
:r /etc/hosts 读入文件到当前行后
:5 r /etc/hosts 读入文件到第5行后
d. 设置环境
临时设置:
:set nu 设置行号
:set ic 不区分大小写
:set ai 自动缩进
:set list 显示控制字符
:set nonu 取消设置行号
:set noic
6、永久的环境: 修改vim环境配置文件
/etc/vimrc 影响所有系统用户
~/.vimrc 影响某一个用户
# vim ~/.vimrc
set ic
set nu
# vim -O /etc/hosts /etc/hostname ^ww切换
# cp /etc/hosts hosts1
# vimdiff /etc/hosts hosts1 //两个文件内容手动效验