vi
替換命令用法詳解:
引用:
range
s /pat1
/pat2
/g其中
: 這是
vi的命令執行介面。
range
是命令執行範圍的指定
:百分號(
%)表示所有行 點(
.)表示當前行
美元($)表示最末行 例如
:10,20
表示第10到20
行, .,$表示當前行到最後一行,
.+2,$-5
表示當前行後兩行直到全文的倒數第五行 s
表示其後是乙個替換命令。
pat1
這是要查詢的乙個正規表示式
pat2
這是希望把匹配串變成的模式的正規表示式 g
可選標誌,帶這個標誌表示替換將針對行中每個匹配的串進行,否則則只替換行中第乙個匹配串。 /
正向查詢
/ 反向查詢1、在
vi中使用的查詢替換方法
利用:s
命令可以實現字串的替換。具體的用法包括:
:s/str1/str2/
用字串
str2
替換行中首次出現的字串
str1
:s/str1/str2/g
用字串
str2
替換行中所有出現的字串
str1
:.,$ s/str1/str2/g
用字串
str2
替換正文當前行到末尾所有出現的字串
str1
:1,$ s/str1/str2/g
用字串
str2
替換正文中所有出現的字串
str1
:g/str1/s//str2/g
功能同上從上述替換命令可以看到:
g 放在命令末尾,表示對搜尋字串的每次出現進行替換;不加
g,表示只對搜尋字串的首次出現進行替換;
g 放在命令開頭,表示對正文中所有包含搜尋字串的行進行替換操作。2、在
shell
中使用find
結合grep
進行檔案的替換
# find ./ -exec grep str1 『{}』 /; -exec sed -i.bak s/str1/str2/g 『{}』 /;
上面命令可以在當前目錄下(包括子目錄)查詢包含
str1
的檔案,自動替換成
str2
,並且生成原始檔的
bak檔案。 vi
編輯命令
重複執行命令
數字n+命令 重複執行命令n次,如刪除15行,就在命令狀態下輸入15dd
.重複執行上一條命令
vi命令使用的一些選項及含義
-c sub-command
在對指定的檔案編輯前,先執行指定的命令sub-command .
-r filename
恢復指定的檔案filename .
-r 將指定的檔案以唯讀的方式放入編輯器中,這樣不會儲存對檔案的任何修 改。
-y number
將編輯視窗的大小設為number行。
游標移動
命令模式下,在同一行上移動的子命令:
h將游標左移一格
l將游標右移一格
j將游標下移一格
k將游標上移一格
w將游標移到下乙個小字的前面
w將游標移到下乙個大字的前面
b將游標移到前乙個小字的前面
b將游標移到前乙個大字的前面
e將游標移到下乙個小字的後面
e將游標移到前乙個大字的後面
fc把游標移到同一行的下乙個c字元處
fc把游標移到同一行的前乙個c字元處
tc把游標移到同一行的下乙個字元c的前一格
tc把游標移到同一行的前乙個字元c的後一格
number|
把游標移到遞number列上
命令模式下在行間移動的子命令:
+或enter 把游標移至下一行第乙個非空白字元
-把游標移至上一行第乙個非空白字元
0把游標移到當前行的第乙個字元處
$把游標移到當前行的最後乙個字元處
h把游標移到螢幕最頂端一行
l把游標移到螢幕最底端一行
m把游標移到螢幕中間
:number
游標移動到第number行
:$游標移動到最後以行
螢幕翻滾類命令
ctrl+u
向檔案首翻半屏
ctrl+d
向檔案尾翻半屏
ctrl+f
向檔案尾翻一屏
ctrl
+b 向檔案首翻一屏
nz將第n行滾至螢幕頂部,不指定n時將當前行滾至螢幕頂部
插入文字
i在游標前
i在當前行首
a游標後
a在當前行尾
o在當前行之下新開一行
o在當前行之上新開一行
r替換當前字元
r替換當前字元及其後的字元,直至按esc鍵
s從當前游標位置處開始,以輸入的文字替代指定數目的字元
s刪除指定數目的行,並以所輸入文字代替之
ncw或ncw 修改n個單詞
ncc修改指定數目的行刪除x
刪除游標所指的乙個字母
x刪除游標左邊的乙個字母
dd刪除游標所在的一行文字,同時本行文字會放到快取中
d0刪至行首
d$刪至行尾
d刪除本行游標右邊的所有文字,包括游標位置的字母
d$刪除本行游標右邊的所有文字,包括游標位置的字母
dw刪除游標右邊的乙個單詞
ndw刪除n個單詞
d1g刪除游標所在行以上的所有行
dg刪除游標所在行及游標以下所有行
複製yy
複製本行文字到快取中
number yy
複製number行到快取中貼上p
把快取中的行貼上到游標所在的下一行,
p把快取中的行貼上到游標所在的上一行
替換:s/pattern1/pattern2/g
把游標當前行的pattern1替換為pattern2
:%s/pattern1/pattern2/g
把所有行的pattern1替換為pattern2
:g/parttern1/s//parttern2
把所有行的pattern1替換為pattern2
:num1,num2 s/pattern1/pattern2/g
把num1到num2的partten1替換為partten2
被替換的文字用^表示行首,$表示行尾,如:%s/^/111/g就表示在每一行的行首插入111
檔案:r filename
把檔案filename的內容貼上在游標以下行
:w儲存當前編輯的檔名
:w filename
當filename不存在時,把修改後的檔案存為檔案filename ,當檔案filename
存在時,報錯。
!w filename
如果檔案filename存在時,把修改後的檔案儲存為檔案filename
:q退出vi ,若檔案被修改,系統不會讓使用者使用q命令退出
q!不儲存退出
x儲存退出
wq儲存退出
在多個檔案之間切換
:n開始編輯vi啟用的檔案列表中的下乙個檔案
:n filenames
指定將被編輯的新的檔案列表
在當前檔案和另外乙個檔案間切換:
:e filename
使用filename啟用vi(在vi中裝入另乙個檔案filename)
e!重新裝入當前檔案,若當前檔案有改動,則丟棄以前的改動
:e+filename
使用filename啟用vi ,並從檔案尾部開始編輯
:e+number filename
使用filename啟用vi ,並在第number行開始編輯
:e#開始編輯另外乙個檔案
查詢/pattern
向後尋找指定的pattern ,若遇到檔案尾,則從頭再開始。
?pattern 向前尋找指定的pattern ,若遇到檔案頭,則從尾再開始。
n在上次指定的方向上,再次執行上次定義的查詢。
n在上次指定的方向的相反方向上,再次執行上次定義的查詢。
/pattern/+number
將游標停在包含pattern的行後面第number行上。
/pattern/-number
將游標停在包含pattern的行前面第number行上。
%移到匹配的"()"或"{}"上。
選項設定
all列出所有選項設定情況
term
設定終端型別
ignorance
在搜尋中忽略大小寫
list
顯示製表位(ctrl+i)和行尾標誌($)
number
顯示行號
report
顯示由面向行的命令修改過的數目
terse
顯示簡短的警告資訊
warn
在轉到別的檔案時若沒儲存當前檔案則顯示no write資訊
nomagic
允許在搜尋模式中,使用前面不帶「/」的特殊字元
nowrapscan
禁止vi在搜尋到達檔案兩端時,又從另一端開始
mesg
允許vi顯示其他使用者用write寫到自己終端上的資訊
vi命令詳解
vi命令的使用 a vi檔名 文字檔案 進入vi後分三種狀態 1.ng表示讓游標到第n行 2.g表示檔案尾 3.1g表示檔案首 4.表示行首 5.表示行尾 6.x表示刪除乙個字元 7.dd表示剪下當前行 8.r表示替換乙個字元 9.cc替換一行 10.c替換從游標到行尾 11.yy表示拷貝行 12....
vi 命令詳解
vi 是visual edit 的縮寫 文字編輯器是所有計算機系統中最常用的一種工具。unix下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi命令繁多。進入vi的命令。進入vi的命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔...
vi 命令詳解
從shell中啟動視覺化編輯器 vi filename 指示shell啟動vi編輯器,並將引數filename傳給它。如果當前目前中存在該檔案,則vi編輯器將它解釋為要開啟的檔案 如果沒有該檔案,則vi編譯器建立新檔案 vi file1 file2 file3 shell傳遞3個引數給vi,vi將它...