文本編輯器vim
不知不覺一周的時間又過完了,感覺前所未有的充實!這周學習了vim編輯器據說很重要!
一.打開文件
★ vim +n filename 打開文件後,讓光標處於第n行的行首,+默認尾行。
★ vim +/要搜索的詞 filename 打開文件後,直接讓光標處於第一個被匹配到的行的行首。
★ vim
-m 只讀方式打開文件
-b 二進制打開文件
-d file1 file2 比較多個文件
二.vim編輯器模式的切換
插入模式-------->命令模式
esc
命令模式--------->擴展命令模式
:
擴展命令模式-------->命令模式
enter,esc
★ 命令模式
ZZ: 保存退出
ZQ :不保存退出
命令模式翻屏操作:
ctrl +f 向下翻一屏
ctrl +b 向上翻一屏
ctrl +d 向下翻半屏
ctrl +u 向上翻半屏
★ 擴展命令模式:
:q 退出
:q! 強制退出,丟棄做出的修改
:wq 保存退出
:x 保存退出
註意:wq!或x!當文件對當前用戶權限為read-only時,可以強制保存並退出(僅限root和當前文件的owner)
擴展命令模式
按“: ”進入擴展模式
創建一個命令提示符: 處於底部的屏幕左側
命令:w 寫(存)磁盤文件
wq 寫入並退出
x 寫入並退出
q 退出
q! ! 不存盤退出,即使更改都將丟失
r filename 讀文件內容到當前文件中
w filename 將當前文件內容寫入另一個文件
!command 執行命令
r!command 讀入命令的輸出
★ 地址界定(擴展命令模式)
#具體第# 行,例如2 表示第2行 行
#,# 從左側#表示起始行,到右側#表示結尾行
#,+# 從左側#表示的起始行,加上右側#表示的行數 。":2,+3表示2到5行
. 當前行
$ 最後一行
.,$-1 當前行到倒數第二行
% 全文, 相當於1,$
/pat1/,/pat2/
從第一次被pat1 模式匹配到的行開始,一直到第一次被pat2 匹配到的行結束
★ 查找(擴展命令模式)
?PATTERN :從當前光標所在處向文件首部查找
n :與命令同方向
N:與命令反方向
★替換 (擴展命令模式)
格式:s/ 要查找的內容/ 替換為的內容/ 修飾符
要查找的內容:可使用模式
替換為的內容:不能使用模式,但可以使用\1, \2, ...等後向引用符號;還可以 使用“&” 引用前面查找時查找到的整個內容。
修飾符:
i: 忽略大小寫
g: 全局替換;默認情況下,每一行只替換第一次出現
gc: 全局替換,每次替換前詢問
查找替換中的分隔符/ 可替換為其它字符,例如 s@/etc@[email protected] s#/boot#/#i
★多文件模式:vim f1 f2 f3
:first 第一個
:next 下一個
:last 最後一個
:prev 前一個
:wall保存所有
:qall退出所有
:wqall保存退出所有
★使用多個窗口
多文件分割:vim -o|-O file1 file2 file3
-o 水平分割
-O 垂直分割
在多個窗口間切換: ctrl+w Arrow
單文件分割:
ctrl+w,s : split 水平分割
ctrl+w,v : vertical 垂直分割
ctrl+w,q : 取消相鄰的窗口
ctrl+w,o : 取消所有的窗口
:wqall 退出
◆習題
1.復制/etc/profile至/tmp/目錄,用查找替換命令刪除/tmp/profile文件中的行首的空白字符。
這道題中用到的知識點有:
1.地址界定 %表示全
2.替換的格式:格式:s/ 要查找的內容/ 替換為的內容/ 修飾符
3. 要查找的內容用到正則表達式
4. 要替換成空格可以用//表示
2.復制/etc/rc.d/init.d/functions 文件至/tmp 目錄,用查找替換命令為/tmp/functions 的每行開頭為空白字符的行的行首添加一個#號。
與上道題相比,這道題要用到後項引用,但是要註意的是後向引用的時候,要引用的內容一定要加()
3.復制/etc/rc.d/init.d/functions 文件至/tmp 目錄,替換/tmp/functions 文件中的/etc/sysconfig/init 為/var/log 。
答案: :%s@\/etc\/sysconfig\/init@\/var\[email protected]
解析:這道題中有許多"/",為防混淆可將查找替換中的分隔符/換成別的,如:@,#,此外查找替換中的/要進行轉義
文本編輯器vim