5.6 vim命令模式
5.7 vim实践
5.5 进入编辑模式
编辑模式:可以编辑文本文档。
截图
一般模式下
i键,当前位置插入,左下角显示白字字体“插入”(图片分别是i前,i后的效果)
I键, 光标自动移动至行首插入
o键 光标所在的下一行插入(图片分别是o前,o后的效果)
O键 光标所在的上一行插入
a键 光标所在字符的下一个字符位置插入。(a=after 之后的意思。图片分别是a前,a后的效果)
A键 光标移动到所在行的行末,插入。((图片分别是A前,A后的效果))
5.6 vim命令模式
命令模式介绍
/dnsmasq 光标之后搜索一个单词,n继续向下搜索
查到最后会往上查找
shift+n=N键 向上查找
?for 光标之前搜索一个单词,n继续向上搜索。(与“/”用法相反)
替换功能
指定范围替换
:1,100s/dnsmasq/aminglinux/g
解释:从第1行到第100行,搜索dnsmasq,并且将其全部替换成/aminglinux。
g是全局替换,如果不加g,代表只替换第一个。(一般都加g,全局替换)
不指定范围 全文替换
:1.$s/dnsmasq/aminglinux/g
替换/etc/host为aminglinux.com
:1,$s/\etc\/host/aminglinux.com/g
因为替换功能只识别到三个“/”,如果目录带有“/”即便变成四个或以上的“/”,所以需要用到脱意来使命令正常运作,而命令中的“\”代表脱意。
或者使用#来代表原来的“/”,效果也是一样。(其实除了\ #还可以用@)
:1,$s#/etc/hosts/#aminglinux.com#g
:模式还有 q q! wq set nu set nonu
:q 退出
:q! 强制退出
:wq 保存退出
:x 同样也是保存退出,不过跟:wq不一样的是,:wq就算不做编辑只是浏览也会改变mtime,而:x则不会改变mtime.
:set nonu 设置无行数表示
:set nu 设置行数表示
去掉黄色高亮
:nohl (no hight light)
5.7 vim实践
实践操作
首先
# cp /etc/dnsmasq.conf /tmp/1.txt
#vim !$
1 分别向下、向右、向左、向上移动6个字符(6j 6l 6h 6k)
2 分别向下、向上翻两页(分别按两次ctrl+f和ctrl+b)
3 把光标移动到第49行(49G)
4 把光标移动到行尾,再移动到行首(shift+4 shift+6)
5 移动到1.txt文件的最后一行(G)
6 移动到文件的首行(gg)
7 搜索文件中出现的“dnsmasq”,并数一下该字符出现的次数(/dnsmasq 然后按n)
出现了58次
8 把从第一行到第十行出现的dnsmasq替换成dns(:1,10s/dnsmasq/dns/q)
9 还原上一步操作(u)
10 把整个文件中所有etc替换成cte(:1,$s/etc/cte/g)
11 把光标移动到第25行,删除字符串“ly”(25G然后按j向右移动光标找到“ly”,按v选中,然后按x)
12 还原上一步操作(u)
13 删除第50行
14 还原上一步操作(u)
15 删除第37-42行的所有内容(37G 6dd)
16 还原上一步操作(u)
17 复制第48行的内容并粘贴到第52行下面(48G yy 52G p)
18 还原上一步操作(u)
19 复制第37-42行的内容并粘贴到第44行上面(37G 6yy 44G P)
20 还原上一步操作(按u)
21 把37-42行的内容移动到第19行下面(37G 6dd 19G p)
22 还原上一步操作(按u)
由于11-22的内容都是u恢复步骤,而且繁琐。此处就不做截图演示。
23 把光标移动到首行,把第1行内容改为“#1/bin/bash”(先按gg,把光标定位到第1行,然后按字母A,进入编辑模式,同时>光标到行末尾,进行修改操作,完成后按ESC)。
24 在第1行下面插入新的一行,并输入“#Hello!”(按o进入编辑模式,同时光标向下另起一行,输入“#Hello!”)
25 保存文档并退出(按Esc键,输入“:wq”)
原文地址:http://blog.51cto.com/13578154/2073945