四周第三次課(2月28日)
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”)
四周第三次課(2月28日)