5.5 进入编辑模式

5.6 vim命令模式

5.7 vim实践


5.5 进入编辑模式


编辑模式:可以编辑文本文档。

截图


一般模式下

i键,当前位置插入,左下角显示白字字体“插入”(图片分别是i前,i后的效果)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_02


I键,光标自动移动至行首插入


o键 光标所在的下一行插入(图片分别是o前,o后的效果)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_03

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_04


O键 光标所在的上一行插入


a键光标所在字符的下一个字符位置插入。(a=after 之后的意思。图片分别是a前,a后的效果)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_05

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_06

A键光标移动到所在行的行末,插入。((图片分别是A前,A后的效果))

5.5-5.7 进入编辑模式,vim命令模式,vim实践_笔记_07

5.5-5.7 进入编辑模式,vim命令模式,vim实践_笔记_08

总结:

  • i键,当前位置插入,左下角显示白字字体“插入”

  • I键,光标自动移动至行首插入

  • o键 光标所在的下一行插入

  • O键  光标所在的上一行插入

  • a键光标所在字符的下一个字符位置插入。

  • A键光标移动到所在行的行末,插入。


5.6 vim命令模式


命令模式介绍

5.5-5.7 进入编辑模式,vim命令模式,vim实践_笔记_09

/dnsmasq光标之后搜索一个单词,n继续向下搜索

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_10

查到最后会往上查找

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_11

shift+n=N键 向上查找


?for光标之前搜索一个单词,n继续向上搜索。(与“/”用法相反)


替换功能

指定范围替换

:1,100s/dnsmasq/aminglinux/g

解释:从第1行到第100行,搜索dnsmasq,并且将其全部替换成/aminglinux。

g是全局替换,如果不加g,代表只替换第一个。(一般都加g,全局替换)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_笔记_12

5.5-5.7 进入编辑模式,vim命令模式,vim实践_笔记_13


不指定范围 全文替换

:1.$s/dnsmasq/aminglinux/g

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_14

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_15


替换/etc/host为aminglinux.com

:1,$s/\etc\/host/aminglinux.com/g

因为替换功能只识别到三个“/”,如果目录带有“/”即便变成四个或以上的“/”,所以需要用到脱意来使命令正常运作,而命令中的“\”代表脱意。

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_16

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_17

或者使用#来代表原来的“/”,效果也是一样。(其实除了\ #还可以用@)

:1,$s#/etc/hosts/#aminglinux.com#g

5.5-5.7 进入编辑模式,vim命令模式,vim实践_笔记_18

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_19

:模式还有 q q! wq set nu set nonu

:q退出

:q!强制退出

:wq保存退出

:x同样也是保存退出,不过跟:wq不一样的是,:wq就算不做编辑只是浏览也会改变mtime,而:x则不会改变mtime.

:set nonu设置无行数表示

:set nu设置行数表示

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_20


去掉×××高亮

:nohl(no hight light)




5.7 vim实践


实践操作

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_21

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_22

5.5-5.7 进入编辑模式,vim命令模式,vim实践_笔记_23

首先

# cp /etc/dnsmasq.conf /tmp/1.txt

#vim !$


1 分别向下、向右、向左、向上移动6个字符(6j 6l 6h 6k)


2 分别向下、向上翻两页(分别按两次ctrl+f和ctrl+b)



3 把光标移动到第49行(49G)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_24

4 把光标移动到行尾,再移动到行首(shift+4 shift+6)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_25

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_26

5 移动到1.txt文件的最后一行(G)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_27

6 移动到文件的首行(gg)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_28

7 搜索文件中出现的“dnsmasq”,并数一下该字符出现的次数(/dnsmasq 然后按n)

出现了58次

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_29

8 把从第一行到第十行出现的dnsmasq替换成dns(:1,10s/dnsmasq/dns/q)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_30

9 还原上一步操作(u)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_31

10 把整个文件中所有etc替换成cte(:1,$s/etc/cte/g)

5.5-5.7 进入编辑模式,vim命令模式,vim实践_linux_32

5.5-5.7 进入编辑模式,vim命令模式,vim实践_笔记_33

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”) 

5.5-5.7 进入编辑模式,vim命令模式,vim实践_学习_34