5.5 进入编辑模式
编辑模式:是一个可以编辑文本文档的模式
一般模式下,不可以修改字符,只能在编辑模式下修改。按(i,I,a,A,o,O,r,R)键进入编辑模式,屏幕下方出现REPLACE 或 INSERT ,编辑模式退出只需按ESC键。
一般操作如下图所示
5.6 vim命令模式
在一般模式下,输入":"或者"/"可进入命令模式。该模式下课搜索某字符、字符串,也可保存、退出、替换、显示行号。
下面表中是各种操作:
上述替换过程,只能替换字符串,并不能固定字符。 如:1,100s/bin/test/g 会把1-100行所有的bin替换为test,而且sbin,ubin,等其他含有这三个字符串的单词也会被更改。
:1,$s/bin/test/c 【+c选项,使替换的时候和用户交互,提示确认是否替换】
:1,$s#<bin>#root#g 可以只替换bin
替换过程中,如果替换目录 /etc/sysconfig/ 为 12345
:1,$s//etc/sysconfig//12345/g 【斜杠会重复,无法执行】
:1,$s//etc/sysconfig//12345/g 【使用\,使计算机认为"/"就是单纯的斜杠】 或者
:1,$s#/etc/sysconfig/#12345#g 【将表达式中的"/"更换为"#""@"替换,不可以用括号】
:nohl 【不高亮显示,no highlight】
下面是实验时的操作:
命令后面+g 是为了使一行中重复出现的全部替换,不加 g 就替换第一个,如果你中途操作失误可以按u键回去 重新操作
5.7 vim实践
1.分别向下,向右,向左,向右移动6个字符的操作
6j,6l,6h,6l
2.分别向下,向上翻两页
分别按两次Crtl+F和Crtl+B
3.把光标移动到第49行
49G
4.把光标移动到行尾,再移动到行首
Shift+4.Shift+6
5.移动到1.txt文件的最后一行
G
6.移动到文件的首行
gg
7.搜索文件中出现的dnsmasq字符串,并数一下该字符串出现的次数
输入/dnsmsq,然后按n
8.把从第一行到第十行出现的dnsmasq替换成dns
:1,10s/dnsmasq/dns/g
9.还原上一步操作
u
10.把整个文件中所有的etc替换成cte
:1,$s/etc/cte/g
11.常用快捷键
查看光标当前的man手册 shift+k
删除当前光标上的单词 d+i+w
选中当前光标上的单词 v+i+w
在vim里面删除光标后的所有字符 shift+d
12.vim新建文档粘贴,出现乱码,格式不对
在新建文档中粘贴复制的代码,发现因为自动缩发现文本文档一行比一行靠右,看起来乱成一团。
vim中粘贴保留格式 :set paste
在粘贴文档之前,在命令行模式下输入
:set paste
再粘贴
13.删除从光标所在处到行尾字符
在一般模式下输入大写“D”或者输入“d$”
14.删除从光标所在处到行首字符
在一般模式下输入“d^”
15.删除从光标所在行到文件末尾行,清空文件
在一般模式下输入大写“dG”
16.同进编辑两个文件或者
例:我现正在编辑1.txt文件,然后我想再打开root目录下的2.txt同时编辑,并把窗口上下水平分隔,一起显示
在一般模式下输入“:new /root/2.txt”
例:我现正在编辑1.txt文件,然后我想再打开root目录下的2.txt同时编辑,并把窗口左右垂直分隔,一起显示
在一般模式下输入“:vsplit /root/2.txt”
注意:在一般模式下按“ctrl+w”组合键,再按左右,或者上下方向键,可以在不同窗口之间切换。如果在一般模式下输入“:only”那么只保留当前正在编辑的窗口,其它全关闭。
17.在vim查找关键字时不区分大小写
在一般模式下输入“:set ic”
如果想取消就输入“:set noic”
18.如何把文件设置成只读文件,只有强制保存时才能保存
在一般模式下输入“:set readonly”
19.把文件恢复到打开时的状态
在一般模式下输入“:e!”
注意:这一节课需要好好操作,熟练就好