1. 程式人生 > >vim的末行模式講解

vim的末行模式講解

linux vim

末行模式重點講解(這是學好sed的基礎)
1)地址定界
:start_pos[,end_pos]
#: 特定的第#行,例如5 為第五行
.: 當前行
$:最後一行
#,#:指定行範圍,左側為起始行
#,#+:指定行範圍,右側為左側行的偏移量 ,例如:3,+7
%:全文
/pattern/:第一次被模式所匹配到的行

2:可實現編輯操作 ,同編輯命令一同使用
d:表示直接刪除,要求直接跟在地址定界符號的後面, 例如::.,$d 表示當前行到最後一行刪除。
y:用來復制地址定界匹配到的行
c:用來修改地址定界匹配到的行
w /path/to/file :將範圍內的文本保存至文件中
r /path/to/file:將指定的文件的文本插入指定位置


3:查找
/pattern:查找模式匹配到的所有字符串,向下查找, 然後在鍵盤上按n鍵會繼續向下匹配
?pattern: 查找模式匹配到的所有字符串,向上查找,然後在鍵盤上按n鍵會繼續向上匹配

查找並替換(極其重要)
(1)格式:地址定界符s/要查找的內容/替換為的內容/修飾符
要查找的內容:可以使用正則表達式
替換為的內容:不能使用正則表達式,但是可以引用
如果使用了分組,也就是在要查找的內容中使用了( )話,可以使用後向引用, \1表示引用第一個括號匹配的內容, \2表示第二個括號匹配的內容, \3表示第三個括號匹配的內容也可以直接引用查找模式匹配到的整個文本,直接使用匹配模式的全部文本:用&符號引用整個模式匹配到的文本


(2)修飾符
i:忽略大小寫
g:全局替換,也就是如果不加g的話,那麽只是一行匹配一個,如果第二個被匹配了也不會被替換,如果加了g,那麽一行中無論匹配到多少個都會被替換

(3)可把分隔符替換為非常用的字符
例如:s@@@
s###

練習
1 . 復制/etc/grub2.cfg文件至/tmp目錄中,用查找替換命令刪除/tmp/grub2.cfg文件中以空白字符開頭的行的行首的空白字符
:%s#^[[:space:]]\+##g \+:匹配其前面的字符一次或多次,即其前面的字符要出現至少一次 %:全文

2 :復制/etc/rc.d/init.d/functions文件至/tmp目錄中,用查找替換命令為/tmp/functions文件的每一個空白字符開頭的行的首行加上#
%s#^[[:space:]]#\#&#g

3 . 為/tmp/grub2.cfg文件的前三行的行首加上#號
1,3s#^.#\#&# .: 當前行 1,3地址定界 1,3s/^/\#/也可以
4 . 將/etc/yum.repos.d/CentOS-Base.repo文件中所有的enabled=0替換為ennabled=1,所有的gpgcheck=0替換為gpgcheck=1
%s#\(enabled\|gpgcheck\)=0#\1=1#g

本文出自 “11018816” 博客,請務必保留此出處http://11028816.blog.51cto.com/11018816/1955987

vim的末行模式講解