導航:首頁 > 程序命令 > vi搜索命令

vi搜索命令

發布時間:2023-10-20 02:49:00

linux系統下 vi文本編輯器搜索單詞打什麼命令

vi文本編輯器搜索
簡單搜索
"/string"用於向下搜索一個字元串,按n按照搜索相同的方向跳轉到下一個匹配項,像一般的命令一樣,前面加上數字,標示命令計數,比如"2n"代表第三個匹配的目標。按N會和之前命令想法的方向就像搜索下一個。
"?string"用於反向向上搜索字元轉,n,N的用法同上。

搜索忽略大小寫
:set ignorecase
設置大小寫區分
:set noignorecase

命令記錄

假設你做過三次的搜索
/one
/two
/there
現在你想再次的重復搜索one,不需要自己輸入全部的字元串"/one"
利用命令的記錄功能,只需要輸入"/"按後通過方向鍵選擇記錄,如上,按三次向上方向鍵即可得到"/one",同樣,你可以輸入"/o"按後按向上方向鍵,即可自動匹配第一個以o開頭的命令記錄。(在:命令模式下,此方法相同使用,命令記錄不相混淆)

當你要鍵入的單詞太長時,你可以將游標移到你要搜索的單詞上,在普通模式下,按下*鍵,即可以當前詞為搜索向下搜索,#則向上搜索。這種方法上的單詞完全匹配,如果你要搜素的字元串可能還包含在一個其他長字元串裡面,可以使用g*,g#進行搜索。

在本行搜索某一個字元
fx 在當前行,向前將游標移動到字元x上
Fx 在當前行,向後將游標移動帶字元x上
tx 在當前行,向前將游標移動到字元x之前的字元上
Tx 在當前行,向後將游標移動到字元x之後的字元上
, 按照上次搜索(f,F,t,T)的反向進行搜索
; 重復上次搜索

使用"/the"會搜索到there,soothe,the,athea
可以通過不同的方法匹配不同的搜索
"/the/>" 得到結果there
"//<the" 得到結果soothe
"//<the/>" 得到結果the
"/>"是一特殊記法,只匹配一個Word的結束處
"/<"是一特殊記法,只匹配一個Word的開始處

高亮顯示搜索結果
將搜索的家國高亮顯示,將十分的直觀
開啟:set hlsearch
關閉:set nohlsearch

調整搜索結果
:set incsearch 這使得你在鍵入目標字元的時候vim就開始搜索,使用這種方法,可以使你在未完全輸入目標的情況下就可以找到一些結果

使用正則表達式
^字元匹配一行的開頭
$字元匹配一行的結尾
eg:
將游標移動到下面一句話的第一個the上,輸入*
the solder holding one of the chips melted and the
XXX XXX XXX(搜索高亮標記)
輸入"/thetiny_mce_markerquot;得到以下匹配結果
the solder holding one of the chips melted and the
XXX(搜索高亮標記)
輸入"/^the"則得到以下結果
the solder holding one of the chips melted and the
XXX (搜索高亮標記)
同理輸入"/^thetiny_mce_markerquot;將匹配一行內容僅含the的行

/jo[ha]n 將搜索john或者joan
.字元可以匹配任意字元
eg:
"/t.e" 將搜索匹配the tee等
(如果你要搜索的字元串里包含特殊字元,比如.則適應轉義字元/房子特殊字元前面)
"//<..../>" 將搜索任何四個字母的字元串

/d代表一個數字
//d 搜索數字 a1a
//</d/> 搜索作為獨立單詞的一個數字 1
//</d/d/> 搜索作為獨立單詞的兩個數字 12
/^$ 搜索空白行
/^/n 同上
--------
指定重復的次數
--------
要制定重復的次數,可以使用"/{n,m}"這樣的形式。"n"和"m"代表數字,其前的項目會被匹配"n"次到"m"次
/^/n/{3} 搜索三個空白行
/ab/{{3,5} 匹配"abbb","abbbb","abbbbb"
如果"n"被忽略,就默認它是0,如果"m"忽略,就默認它是無窮大,如果",m"被忽略,那麼精確匹配"n"次重復
/{,4} 0,1,2,3,4次
/{3,} 大於等於3次
/{3,4} 3,4次
/{4} 4次
/= 0或者1
* 0或者多次
/+ 一次或者多次

--------
多選一
--------
在一個操作中的"或"操作符是"/|"。如:
/fred/|joe 將搜索fred或者joe
多個選項能繼續串聯在一起
/one/|two/|three
/end/(if/|while/|for/) 匹配的是"endif","endwhile","endfor"

--------
字元范圍
--------
[a-z] a到z中的一個字元
[^a-z] 除了a到z中的一個字元
預定義字元集
//a 所有字母 /[a-zA-Z]
//d 數字 /[0-9]
//D 非數字 /[^0-9]
//x 十六進制數 /[0-9a-fA-F]
//X 非十六進制數 /[^0-9a-fA-F]
//s 空白字元 /[ ]
//S 非空白字元 /[^ ]
//l 小寫字母 /[a-z]
//L 非小寫字母 /[^a-z]
//u 大寫字母 /[A-Z]
//U 非大寫字母 /[^A-Z]
//h /[A-Za-z]
//w /[0-9A-Za-z]

❷ VI 編輯器基本操作及快捷鍵

在系統提示符號輸入vi及文件名稱後,就進入vi全屏幕編輯畫面:
$ vi myfile
不過有一點要特別注意,就是您進入vi之後,是處於 命令行模式(command mode) ,您要切換到 插入模式(Insert mode) 才能夠輸入文字。初次使用vi的人都會想先用上下左右鍵移動游標,結果電腦一直嗶嗶叫,把自己氣個半死,所以進入vi後,先不要亂動,轉換到 插入模式(Insert mode) 再說吧!

在 命令行模式(command mode) 下按一下字母 i 就可以進入 插入模式(Insert mode) ,這時候你就可以開始輸入文字了。

您目前處於 插入模式(Insert mode) ,您就只能一直輸入文字,如果您發現輸錯了字!想用游標鍵往回移動,將該字刪除,就要先按一下 ESC 鍵轉到 命令行模式(command mode) 再刪除文字。

在 命令行模式(command mode) 下,按一下 : 冒號鍵進入 Last line mode ,例如:
: w filename (輸入 w filename 將文章以指定的文件名filename保存)
: wq (輸入 wq ,存檔並退出vi)
: q! (輸入 q! , 不存檔強制退出vi)

按 i 切換進入插入模式 insert mode ,按"i"進入插入模式後是從游標當前位置開始輸入文件;
按 a 進入插入模式後,是從目前游標所在位置的下一個位置開始輸入文字;
按 o 進入插入模式後,是插入新的一行,從行首開始輸入文字。

按 ESC 鍵。

vi可以直接用鍵盤上的游標來上下左右移動,但正規的vi是用小寫英文字母 h 、 j 、 k 、 l ,分別控制游標左、下、上、右移一格。
按 ctrl + b :屏幕往"後"移動一頁。
按 ctrl + f :屏幕往"前"移動一頁。
按 ctrl + u :屏幕往"後"移動半頁。
按 ctrl + d :屏幕往"前"移動半頁。
按數字 0 :移到文章的開頭。
按 G :移動到文章的最後。
按 $ :移動到游標所在行的"行尾"。
按 ^ :移動到游標所在行的"行首"
按 w :游標跳到下個字的開頭
按 e :游標跳到下個字的字尾
按 b :游標回到上個字的開頭
按 #l :游標移到該行的第#個位置,如:5l,56l。

x :每按一次,刪除游標所在位置的"後面"一個字元。
#x :例如, 6x 表示刪除游標所在位置的"後面"6個字元。
X :大寫的X,每按一次,刪除游標所在位置的"前面"一個字元。
#X :例如, 20X 表示刪除游標所在位置的"前面"20個字元。
dd :刪除游標所在行。
#dd :從游標所在行開始刪除#行

yw :將游標所在之處到字尾的字元復制到緩沖區中。
#yw :復制#個字到緩沖區
yy :復制游標所在行到緩沖區。
#yy :例如, 6yy 表示拷貝從游標所在的該行"往下數"6行文字。
p :將緩沖區內的字元貼到游標所在位置。注意:所有與"y"有關的復制命令都必須與"p"配合才能完成復制與粘貼功能。

r :替換游標所在處的字元。
R :替換游標所到之處的字元,直到按下 ESC 鍵為止。

u :如果您誤執行一個命令,可以馬上按下 u ,回到上一個操作。按多次"u"可以執行多次回復。

cw :更改游標所在處的字到字尾處
c#w :例如, c3w 表示更改3個字

ctrl + g 列出遊標所在行的行號。
#G :例如, 15G ,表示移動游標至文章的第15行行首。

在使用 last line mode 之前,請記住先按 ESC 鍵確定您已經處於 command mode 下後,再按 : 冒號即可進入 last line mode 。

set nu :輸入 set nu 後,會在文件中的每一行前面列出行號。

# : # 號表示一個數字,在冒號後輸入一個數字,再按回車鍵就會跳到該行了,如輸入數字15,再回車,就會跳到文章的第15行。

/關鍵字 :先按 / 鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按 n 會往後尋找到您要的關鍵字為止。

?關鍵字 :先按 ? 鍵,再輸入您想尋找的字元,如果第一次找的關鍵字不是您想要的,可以一直按 n 會往前尋找到您要的關鍵字為止。

w :在冒號輸入字母 w 就可以將文件保存起來。

q :按 q 就是退出,如果無法離開vi,可以在 q 後跟一個 ! 強制離開vi。

qw :一般建議離開時,搭配 w 一起使用,這樣在退出的時候還可以保存文件。

h
左移游標一個字元

l
右移游標一個字元

k
游標上移一行

j
游標下移一行

^
游標移動至行首

0
數字"0",游標移至文章的開頭

G
游標移至文章的最後

$
游標移動至行尾

Ctrl+f
向前翻屏

Ctrl+b
向後翻屏

Ctrl+d
向前翻半屏

Ctrl+u
向後翻半屏

i
在游標位置前插入字元

a
在游標所在位置的後一個字元開始增加

o
插入新的一行,從行首開始輸入

ESC
從輸入狀態退至命令狀態

x
刪除游標後面的字元

#x
刪除游標後的#個字元

X
(大寫X),刪除游標前面的字元

#X
刪除游標前面的#個字元

dd
刪除游標所在的行

#dd
刪除從游標所在行數的#行

yw
復制游標所在位置的一個字

#yw
復制游標所在位置的#個字

yy
復制游標所在位置的一行

#yy
復制從游標所在行數的#行

p
粘貼

u
取消操作

cw
更改游標所在位置的一個字

#cw
更改游標所在位置的#個字

w filename
儲存正在編輯的文件為filename

wq filename
儲存正在編輯的文件為filename,並退出vi

q!
放棄所有修改,退出vi

set nu
顯示行號

/ 或 ?
查找,在/後輸入要查找的內容

n
與/或?一起使用,如果查找的內容不是想要找的關鍵字,按n或向後(與/聯用)或向前(與?聯用)繼續查找,直到找到為止。

對於第一次用vi,有幾點注意要提醒一下:
1、用vi打開文件後,是處於 命令行模式(command mode) ,您要切換到 插入模式(Insert mode) 才能夠輸入文字。切換方法:在 命令行模式(command mode) 下按一下字母 i 就可以進入 插入模式(Insert mode) ,這時候你就可以開始輸入文字了。
2、編輯好後,需從插入模式切換為命令行模式才能對文件進行保存,切換方法:按 ESC 鍵。
3、保存並退出文件:在命令模式下輸入:wq即可!(別忘了wq前面的)

vi使用手冊
VI是unix上最常用的文本編輯工具,作為unix軟體測試人員,有必要熟練掌握它。

進入vi的命令
vi filename :打開或新建文件,並將游標置於第一行首
vi +n filename :打開文件,並將游標置於第n行首
vi + filename :打開文件,並將游標置於最後一行首
vi +/pattern filename:打開文件,並將游標置於第一個與pattern匹配的串處
vi -r filename :在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename…filename :打開多個文件,依次編輯

移動游標類命令
h :游標左移一個字元
l :游標右移一個字元
space:游標右移一個字元
Backspace:游標左移一個字元
k或Ctrl+p:游標上移一行
j或Ctrl+n :游標下移一行
Enter :游標下移一行
w或W :游標右移一個字至字首
b或B :游標左移一個字至字首
e或E :游標右移一個字j至字尾
) :游標移至句尾
( :游標移至句首
}:游標移至段落開頭
{:游標移至段落結尾
nG:游標移至第n行首
n+:游標下移n行
n-:游標上移n行
n :游標移至當前行尾

屏幕翻滾類命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部。

插入文本類命令
i :在游標前
I :在當前行首
a:游標後
A:在當前行尾
o:在當前行之下新開一行
O:在當前行之上新開一行
r:替換當前字元
R:替換當前字元及其後的字元,直至按ESC鍵
s:從當前游標位置處開始,以輸入的文本替代指定數目的字元
S:刪除指定數目的行,並以所輸入文本代替之
ncw或nCW:修改指定數目的字
nCC:修改指定數目的行

刪除命令
ndw或ndW:刪除游標處開始及其後的n-1個字
do:刪至行首
d$:刪至行尾
ndd:刪除當前行及其後n-1行
x或X:刪除一個字元,x刪除游標後的,而X刪除游標前的
Ctrl+u:刪除輸入方式下所輸入的文本

搜索及替換命令 :
/pattern:從游標開始處向文件尾搜索pattern
?pattern:從游標開始處向文件首搜索pattern
n:在同一方向重復上一次搜索命令
N:在反方向上重復上一次搜索命令
:s/p1/p2/g:將當前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:將第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:將文件中所有p1均用p2替換

選項設置
all:列出所有選項設置情況
term:設置終端類型
ignorance:在搜索中忽略大小寫
list:顯示製表位(Ctrl+I)和行尾標志($)
number:顯示行號
report:顯示由面向行的命令修改過的數目
terse:顯示簡短的警告信息
warn:在轉到別的文件時若沒保存當前文件則顯示NO write信息
nomagic:允許在搜索模式中,使用前面不帶「\」的特殊字元
nowrapscan:禁止vi在搜索到達文件兩端時,又從另一端開始
mesg:允許vi顯示其他用戶用write寫到自己終端上的信息

最後行方式命令
:n1,n2 co n3:將n1行到n2行之間的內容拷貝到第n3行下
:n1,n2 m n3:將n1行到n2行之間的內容移至到第n3行下
:n1,n2 d :將n1行到n2行之間的內容刪除
:w :保存當前文件
:e filename:打開文件filename進行編輯
:x:保存當前文件並退出
:q:退出vi
:q!:不保存文件並退出vi
:!command:執行shell命令command
:n1,n2 w!command:將文件中n1行至n2行的內容作為command的輸入並執行之,若不指
定n1,n2,則表示將整個文件內容作為command的輸入
:r!command:將命令command的輸出結果放到當前行 。

❸ VI和VIM命令的操作

vi編輯器是分為三種狀態的

h 或 向左箭頭鍵(←) 游標向左移動一個字元
j 或 向下箭頭鍵(↓) 游標向下移動一個字元
k 或 向上箭頭鍵(↑) 游標向上移動一個字元
l 或 向右箭頭鍵(→) 游標向右移動一個字元
[Ctrl] + [d] 屏幕『向下』移動半頁
[Ctrl] + [u] 屏幕『向上』移動半頁

0 或功能鍵[Home] 這是數字『 0 』:移動到這一行的最前面字元處 (常用)
$ 或功能鍵[End] 移動到這一行的最後面字元處(常用)

gg 移動到這個檔案的第一行 (常用)
n<Enter> n 為數字。游標向下移動 n 行(常用)

n<space> 那個 n 表示『數字』,游標會向右移動這一行的 n 個字元。
n<Enter> n 為數字。游標向下移動 n 行(常用)

/word 向下尋找某個單詞
?word 向下尋找某個單詞
n 向下重復執行搜索命令
N 向上重復執行搜索命令

dd 刪除游標所在的整列
yy 復制游標所在那行
. 重復上一個動作

主要為一般模式到編輯模式的切換
i,I a,A o,O r,R 都可以實現到編輯模式的切換
其中r,R實現的是取代模式
Esc 為推出編輯模式回到常用模式

:w 編輯的數據寫入硬碟
:w! 如果未見為只讀的時候強制寫入
;q 離開
:q! 不儲存強制離開
:wq 儲存後離開
:wq! 儲存後強制離開
ZZ 若檔案沒有動過則直接離開,若檔案已動過則保存離開
:set nu 設置行號
:set nonu 取消行號

❹ vi 命令大全

vi filename   打開或新建文檔,並將游標置於第一行行首
vi +n filename   打開文件,並將游標置於第n行首
vi + filename   打開文件,並將游標置於最後一行首
vi +/pattern filename   打開文件,並將游標置於第一個與pattern匹配的串處
vi -r filename   在上次正用vi編輯時發生系統崩潰,恢復filename
vi filename....filename   打開多個文件,依次進行編輯

w   保存當前文件
w /tmp1   另存為/tmp1
20,59w /tmp1   僅將20-59行之間的內存另存為/tmp1
x 或 wq   保存退出
q   退出vi
q!   退出不保存 >
!command   執行shell命令command
n1,n2 w !command   將文件中n1行至n2行的內容作為command的輸入並執行之,若不指定n1,n2,則表示將整個文件內容作為command的輸入
r !command   將命令command的輸出結果放到當前行
w !sudo tee %   保存沒許可權時,可獲取許可權再保存

h  游標左移一個字元
l  游標右移一個字元
space  游標右移一個字元
Backspace  游標左移一個字元
k Ctrl+p   游標上移一行
j Ctrl+n   游標下移一行
Enter   游標下移一行
w W   游標右移一個字至字首
b B   游標左移一個字至字首
e E   游標右移一個字至字尾
)   游標移至句尾
(   游標移至句首
}   游標移至段落開頭
{   游標移至段落結尾
nG   游標移至第n行首
n+   游標下移n行
n-   游標上移n行
n$   游標移至第n行尾
H   游標移至屏幕頂行
M   游標移至屏幕中間行
L   游標移至屏幕最後行
0   (注意是數字零)游標移至當前行首
$   游標移至當前行尾

Ctrl+u   向文件首翻半屏
Ctrl+d   向文件尾翻半屏
Ctrl+f   向文件尾翻一屏
Ctrl+b   向文件首翻一屏
nz   將第n行滾至屏幕頂部,不指定n時將當前行滾至屏幕頂部

i   在游標前
I   在當前行首
a   游標後
A   在當前行尾
o   在當前行之下新開一行
O   在當前行之上新開一行
r   替換當前字元
R   替換當前字元及其後的字元,直至按ESC鍵
s   從當前游標位置處開始,以輸入的文本替代指定數目的字元
S   刪除指定數目的行,並以所輸入文本代替
ncw nCW   修改指定數目的字
nCC   修改指定數目的行

ndw ndW   刪除游標處開始及其後的n-1個字
do   刪至行首
d$   刪至行尾
ndd   刪除當前行及其後n-1行
x X   刪除一個字元,x刪除游標後的,而X刪除游標前的
Ctrl+u   刪除輸入方式下所輸入的文本
n1,n2 d   將n1行到n2行之間的內容刪除
%d   刪除全部內容
1,$d   刪除全部內容

yy   復制當前行
nyy   復制當前行開始的n行
  先按 v 然後方向鍵選擇區域,按 y 復制選中行
dd   剪切當前行
p (小)   在當前游標處下面粘貼內容
P (大)   在當前游標處上面粘貼內容
n1,n2 co n3   將n1行到n2行之間的內容拷貝到第n3行下
n1,n2 m n3   將n1行到n2行之間的內容移至到第n3行下

/abc   從游標開始處向文件尾搜索abc
?abc   從游標開始處向文件首搜索abc
//abc   從游標開始處向文件尾搜索/abc,其中/是轉義
n   在同一方向重復上一次搜索命令
N   在反方向上重復上一次搜索命令

s/vivian/sky/   替換當前行第一個 vivian 為 sky
s/vivian/sky/g   替換當前行所有 vivian 為 sky
n,$s/vivian/sky/   替換第 n 行開始到最後一行中每一行的第一個 vivian 為 sky
n,$s/vivian/sky/g   替換第 n 行開始到最後一行中每一行所有 vivian 為sky
%s/vivian/sky/g   (等同於 g/vivian/s//sky/) 替換每一行的每一個 vivian 為 sky
s#vivian/#sky#   替換當前行第一個 vivian/ 為 sky/(可以使用 # 或 + 作為分隔符,此時中間出現的 / 不會作為分隔符)
s/p1/p2/g   將當前行中所有p1均用p2替代
n1,n2s/p1/p2/g   將第n1至n2行中所有p1均用p2替代
g/p1/s//p2/g   將文件中所有p1均用p2替換

"?nyy   將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyw   將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
"?nyl   將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字
"?p   取出寄存器?中的內容並將其放到游標位置處。這里?可以是一個字母,也可以是一個數字
ndd   將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中

set number   顯示行號
set number!   不顯示行號,其它選項同理加!號
set all   列出所有選項設置情況
set term   設置終端類型
set ignorance   在搜索中忽略大小寫
set list   顯示製表位(Ctrl+I)和行尾標志($)
set report   顯示由面向行的命令修改過的數目
set terse   顯示簡短的警告信息
set warn   在轉到別的文件時若沒保存當前文件則顯示NO write信息
set nomagic   允許在搜索模式中,使用前面不帶「」的特殊字元
set nowrapscan   禁止vi在搜索到達文件兩端時,又從另一端開始
set mesg   允許vi顯示其他用戶用write寫到自己終端上的信息

參考文獻:
https://www.cnblogs.com/mondol/p/vi-examples.html

❺ 如何在 Vim/Vi 中快速查找和替換文本內容

Vim 是 Vi 多模式命令行 編輯器 的加強版,通常默認的Unix或Linux系統中都默認自帶Vi命令編輯器。當然,為了更好的體驗,如果系統默認沒有安裝Vim,建議安裝Vim。

通過本文的講解,你將學會如何在Vim/Vi中快速的使用命令進行查找替換文本。

首先,啟動Vim/Vi編輯器,處於正常模式下。如果你不確定是否處於正常模式下,這時你可以按「ESC」,編輯器就會進入正常模式。

替換命令的格式一般如下:

該命令表示在[range]的每一行中搜索{pattern},並將其替換為{string}。 [count]是一個乘以命令的正整數。

如果沒有給出[range]和[count],則僅替換當前行中找到的模式。

例如,要搜索當前行中字元串「foo」的首次出現,並將其替換為「bar」,可以使用:

要替換當前行中搜索到的所有內容,可以添加 g 標志:

如果想搜索和替換整個文件中的匹配內容,使用百分比字元 % 作為范圍。此字元指示從文件第一行到最後一行的范圍:

如果省略 {string} 部分即上面的bar,則將其視為空字元串,相當於將匹配到的內容替換為空,既刪除匹配到的內容。

以下命令刪除當前行中字元串「foo」的所有實例:

當然,除了作為分隔符外,還可以使用任何其他非字母數字單位元組字元,而不是斜杠字元( / )。例如:

要確認每個替換,可以使用 c 標志。

替換前會詢問:

按 y 替換匹配項,或按l替換匹配項並退出。 按 n 跳過當前匹配,按 q 或 Esc 退出替換。 a 選項替換匹配項和所有剩餘匹配項。

若要向下滾動屏幕,請使用 CTRL + Y ,向上滾動,請使用 CTRL + E 。

還可以使用 正則表達式 作為搜索模式,例如:

^ 符號表示與行首匹配, .* 表示匹配任意數量的字元。

默認情況下,搜索操作區分大小寫;搜索「FOO」將與「FOo」不匹配。

要忽略搜索模式的案例,請使用 i 標志:

另一種強制忽略案例的方法是在搜索模式後添加 \c 。例如, /Linux\c 執行忽略大小寫搜索。

當未指定范圍時,替換命令僅在當前行中操作。

范圍可以是一行,也可以是兩行之間的范圍。 行說明符之間可用英文 , 分隔 ; 字元分割。 可以使用絕對行號或特殊符號指定范圍。

例如,要在從第3行到第10行的所有行中將所有出現的「 foo」替換為「 bar」,可以使用:

該范圍是包含范圍的,這意味著該范圍包括第一行和最後一行。

. 字元表示當前行, $ 美元符號表示最後一行。 要在從當前行到最後一行的所有行中替換「 foo」:

也可以使用「 +」或「-」符號來設置行說明符,其後是從前一個行號添加或減去的數字。 如果省略符號後的數字,則默認為1。

例如,從當前行和接下來的四行開始,用「 bar」替換每個「 foo」,鍵入:

替代命令將模式作為字元串而不是整個單詞查找。 例如,如果您正在搜索「 gnu」,則搜索查找匹配「 gnu」嵌入在較大單詞(例如「cygnus」 或 「magnum」)中的情況。

要搜索整個單詞,請鍵入\ <標記單詞的開頭,輸入搜索模式,鍵入>標記單詞的結尾:

例如,要搜索單詞「 foo」,可以使用 \<foo\> :

Vim會跟蹤您在當前會話中運行的所有命令。

要瀏覽歷史記錄以查找先前的替代命令,請輸入 :s 並使用向上或向下箭頭鍵查找先前的替代操作。 要運行該命令,只需按Enter。 您也可以在執行操作之前編輯命令。

注釋行(在行前添加#)從5到20:

取消注釋行從5到20,恢復以前的更改:

將「蘋果」,「橙色」和「芒果」的所有實例替換為「水果」:

刪除每行末尾的空格:

搜索和替換在Vim中是一個非常強大的功能,學會使用它能使您可以快速更改文本,提高自己的工作效率。

歡迎通過查看我個人介紹信息,私信跟我溝通!

❻ Linux如何在vi里搜索關鍵字

在命令模式下敲斜桿( / )這時在狀態欄(也就是屏幕左下腳)就出現了 「/」 然後輸入你要查找的關鍵字敲回車就可以了。

如果你要繼續查找此關鍵字,敲字元 n 就可以繼續查找了。

❼ linux中使用vi指令後怎麼輸入

以下是VI有關文件修改與保存的命令:x0dx0ax0dx0a插入命令x0dx0ax0dx0ai 在當前位置生前插入x0dx0ax0dx0aI 在當前行首插入x0dx0ax0dx0aa 在當前位置後插入x0dx0ax0dx0aA 在當前行尾插入x0dx0ax0dx0ao 在當前行之後插入一行x0dx0ax0dx0aO 在當前行之前插入一行x0dx0ax0dx0a查找命令x0dx0ax0dx0a/text查找text,按n健查找下一個,按N健查找前一個。x0dx0ax0dx0a?text查找text,反向查找,按n健查找下一個,按N健查找前一個。x0dx0ax0dx0avim中有一些特殊字元在查找時需要轉義.*[]^%/?~$x0dx0ax0dx0a:set ignorecase忽略大小寫的查找x0dx0ax0dx0a:set noignorecase不忽略大小寫的查找x0dx0ax0dx0a查找很長的詞,如果一個詞很長,鍵入麻煩,可以將游標移動到該詞上,按*或#鍵即可以該單詞進行搜索,相當於/搜索。而#命令相當於?搜索。x0dx0ax0dx0a:set hlsearch高亮搜索結果,所有結果都高亮顯示,而不是只顯示一個匹配。x0dx0ax0dx0a:set nohlsearch關閉高亮搜索顯示x0dx0ax0dx0a:nohlsearch關閉當前的高亮顯示,如果再次搜索或者按下n或N鍵,則會再次高亮。x0dx0ax0dx0a:set incsearch逐步搜索模式,對當前鍵入的字元進行搜索而不必等待鍵入完成。x0dx0ax0dx0a:set wrapscan重新搜索,在搜索到文件頭或尾時,返回繼續搜索,默認開啟。x0dx0ax0dx0a替換命令x0dx0ax0dx0ara 將當前字元替換為a,當期字元即游標所在字元。x0dx0ax0dx0as/old/new/ 用old替換new,替換當前行的第一個匹配x0dx0ax0dx0as/old/new/g 用old替換new,替換當前行的所有匹配殲陸x0dx0ax0dx0a%s/old/new/ 用old替換new,替換所有行的第一個匹配x0dx0ax0dx0a%s/old/new/g 用old替換new,替換整個文件的所有匹配x0dx0ax0dx0a:10,20 s/^/ /g 在第10行知第20行每行前面加四個空格,用於縮進。x0dx0ax0dx0addp 交換游標所在行和其下緊鄰的一行。x0dx0ax0dx0a移動命令x0dx0ax0dx0ah 左移一個字元x0dx0al 右移一個字元,這個命令很少用,一般用w代替。x0dx0ak 上移一個字元x0dx0aj 下移一個字元x0dx0a以上四個命令可以配合數字使用,比如20j就是向下移動20行,5h就是向左移動5個字元,在Vim中,很多命令都可以配合數字使用,比如刪除10個字元10x,在當前位置後插入3個!,3a!,這里的Esc是必須的,否則命令不生效。x0dx0ax0dx0aw 向前移動一個單詞(游標停在單詞首部),如果已到行尾,則轉至下一行行首。此命令悄虛快,可以代替l命令。x0dx0ax0dx0ab 向後移動一個單詞 2b 向後移動2個單詞x0dx0ax0dx0ae,同w,只不過是游標停在單詞尾部x0dx0ax0dx0age,同b,游標啟改燃停在單詞尾部。x0dx0ax0dx0a^ 移動到本行第一個非空白字元上。x0dx0ax0dx0a0(數字0)移動到本行第一個字元上,x0dx0ax0dx0a 移動到本行第一個字元。同0健。x0dx0ax0dx0a$ 移動到行尾 3$ 移動到下面3行的行尾x0dx0ax0dx0agg 移動到文件頭。 = [[x0dx0ax0dx0aG(shift + g) 移動到文件尾。 = ]]x0dx0ax0dx0af(find)命令也可以用於移動,fx將找到游標後第一個為x的字元,3fd將找到第三個為d的字元。x0dx0ax0dx0aF 同f,反向查找。x0dx0ax0dx0a跳到指定行,冒號+行號,回車,比如跳到240行就是 :240回車。另一個方法是行號+G,比如230G跳到230行。x0dx0ax0dx0aCtrl + e 向下滾動一行x0dx0ax0dx0aCtrl + y 向上滾動一行x0dx0ax0dx0aCtrl + d 向下滾動半屏x0dx0ax0dx0aCtrl + u 向上滾動半屏x0dx0ax0dx0aCtrl + f 向下滾動一屏x0dx0ax0dx0aCtrl + b 向上滾動一屏x0dx0ax0dx0a撤銷和重做x0dx0ax0dx0au 撤銷(Undo)x0dx0aU 撤銷對整行的操作x0dx0aCtrl + r 重做(Redo),即撤銷的撤銷。x0dx0ax0dx0a刪除命令x0dx0ax0dx0ax 刪除當前字元x0dx0ax0dx0a3x 刪除當前游標開始向後三個字元x0dx0ax0dx0aX 刪除當前字元的前一個字元。X=dhx0dx0ax0dx0adl 刪除當前字元, dl=xx0dx0ax0dx0adh 刪除前一個字元x0dx0ax0dx0add 刪除當前行x0dx0ax0dx0adj 刪除上一行x0dx0ax0dx0adk 刪除下一行x0dx0ax0dx0a10d 刪除當前行開始的10行。x0dx0ax0dx0aD 刪除當前字元至行尾。D=d$x0dx0ax0dx0ad$ 刪除當前字元之後的所有字元(本行)x0dx0ax0dx0akdgg 刪除當前行之前所有行(不包括當前行)x0dx0ax0dx0ajdG(jd shift + g) 刪除當前行之後所有行(不包括當前行)x0dx0ax0dx0a:1,10d 刪除1-10行x0dx0ax0dx0a:11,$d 刪除11行及以後所有的行x0dx0ax0dx0a:1,$d 刪除所有行x0dx0ax0dx0aJ(shift + j)刪除兩行之間的空行,實際上是合並兩行。x0dx0ax0dx0a拷貝和粘貼x0dx0ax0dx0ayy 拷貝當前行x0dx0ax0dx0anyy 拷貝當前後開始的n行,比如2yy拷貝當前行及其下一行。x0dx0ax0dx0ap 在當前游標後粘貼,如果之前使用了yy命令來復制一行,那麼就在當前行的下一行粘貼。x0dx0ax0dx0ashift+p 在當前行前粘貼x0dx0ax0dx0a:1,10 co 20 將1-10行插入到第20行之後。x0dx0ax0dx0a:1,$ co $ 將整個文件復制一份並添加到文件尾部。x0dx0ax0dx0a正常模式下按v(逐字)或V(逐行)進入可視模式,然後用jklh命令移動即可選擇某些行或字元,再按y即可復制x0dx0ax0dx0addp交換當前行和其下一行x0dx0ax0dx0axp交換當前字元和其後一個字元x0dx0ax0dx0a剪切命令x0dx0ax0dx0a正常模式下按v(逐字)或V(逐行)進入可視模式,然後用jklh命令移動即可選擇某些行或字元,再按d即可剪切x0dx0ax0dx0andd 剪切當前行之後的n行。利用p命令可以對剪切的內容進行粘貼x0dx0ax0dx0a:1,10d 將1-10行剪切。利用p命令可將剪切後的內容進行粘貼。x0dx0ax0dx0a:1, 10 m 20 將第1-10行移動到第20行之後。x0dx0ax0dx0a退出命令x0dx0ax0dx0a:wq 保存並退出x0dx0ax0dx0aZZ 保存並退出x0dx0ax0dx0a:q! 強制退出並忽略所有更改x0dx0ax0dx0a:e! 放棄所有修改,並打開原來文件。

❽ AIX中的vi常用命令

本文適用於AIX系統的vi編輯器,不兼容vim

測試環境: AIX 7.1

vi編輯器包括三種模式:

在編輯模式/命令模式下,通過ESC返回普通模式

如,右移20列寫作 20l

長單詞:以空格(space)、製表符(tab)、回車(enter)作為分隔符
短單詞:包括*()-等均視為分隔符
例如: if(a > 0) 中,長單詞包括 if(a 、 > 、 0) 3個,短單詞包括 if 、 ( 、 a 、 > 、 0 、 ) 6個

f=forward,b=backward,u=up,d=down
%適用於大中小三種括弧

/+n :正向搜索
/+N :逆向搜索
?+n :逆向搜索
?+N :正向搜索

對於組合命令,可以通過ESC取消

示例:逐詞替換

控制字元指ASCII碼中0x01-0x1F區間的不可見字元,主要用於程序控制。
在編輯模式下,輸入: crtl-v , ctrl-控制字元
例如回車(0x0D)輸入: ctrl-v , ctrl-m ,在vi中顯示為 ^M

閱讀全文

與vi搜索命令相關的資料

熱點內容
計算機專業學51單片機 瀏覽:206
程序員不接受反駁 瀏覽:294
微軟自帶的壓縮軟體 瀏覽:286
中國玩家在日本伺服器做什麼 瀏覽:48
12864和單片機 瀏覽:898
25匹空調壓縮機 瀏覽:649
adkandroid下載 瀏覽:308
如何在蘋果電腦上裝python 瀏覽:327
哪個app的跑步訓練內容最豐富 瀏覽:583
廣訊通怎麼刪除文件夾 瀏覽:206
解壓的視頻化妝品 瀏覽:674
易語言新進程監視源碼 瀏覽:941
turbo碼解碼演算法 瀏覽:956
stc11f16xe單片機 瀏覽:282
linuxupdate命令行 瀏覽:578
pdf轉化成wps 瀏覽:765
php拋出錯誤 瀏覽:159
買車看車用什麼app 瀏覽:656
dos怎麼清除屏幕上的命令 瀏覽:813
壓縮褲冬天 瀏覽:449