㈠ Vi命令的命令大全
本編輯器是所有計算機系統中最常用的一種工具。UNIX下的編輯器有ex,sed和vi等,其中,使用最為廣泛的是vi,而vi命令繁多,論壇里好像這方面的總結不多,以下稍做總結,以資共享!渴望更正和補充!
進入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 :游標右移一個字至字尾
) :游標移至句尾
( :游標移至句首
}:游標移至段落最後一個字母
{:游標移至段落第一個字母
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個字
d0:刪至行首
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的輸出結果放到當前行
寄存器操作
?nyy:將當前行及其下n行的內容保存到寄存器?中,其中?為一個字母,n為一個數字
?nyw:將當前行及其下n個字保存到寄存器?中,其中?為一個字母,n為一個數字
?nyl:將當前行及其下n個字元保存到寄存器?中,其中?為一個字母,n為一個數字
?p:取出寄存器?中的內容並將其放到游標位置處。這里?可以是一個字母,也可以是一個數字
ndd:將當前行及其下共n行文本刪除,並將所刪內容放到1號刪除寄存器中。
tags 用法
在函數中移動游標
[{ 轉到上一個位於第一列的{
}] 轉到下一個位於第一列的{
{ 轉到上一個空行
} 轉到下一個空行 ([ and ] 也分別是兩個指令)
ctrl+t 跳回
gd 轉到當前游標所指的局部變數的定義
* 轉到當前游標所指的單詞下一次出現的地方
# 轉到當前游標所指的單詞上一次出現的地方
Vim 的創造者是一名計算機程序員,因此這就不奇怪 Vim 中有許多幫助編寫程序的功能:
跳轉到標識符被定義和使用的地方;在另一個窗口中預覽有關的聲明等等。
㈡ 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
㈢ Vi的命令模式操作
1). 插入模式
按 i 切換進入插入模式後,是從游標當前位置開始輸入文件;
按 a 進入插入模式後,是從目前游標所在位置的下一個位置開始輸入文字;
按 o 進入插入模式後,是插入新的一行,從行首開始輸入文字。
2). 從插入模式切換為命令行模式
按 ESC 鍵。
3). 移動游標
vi可以直接用鍵盤上的游標來上下左右移動,但正規的vi是用小寫英文字母 h 、 j 、 k 、 l ,分別控制游標左、下、上、右移一格。
按 Ctrl+b :屏幕往後移動一頁。
按 Ctrl+f :屏幕往前移動一頁。
按 Ctrl+u :屏幕往後移動半頁。
按 Ctrl+d :屏幕往前移動半頁。
按數字 0 :移到當前行的開頭。
按 G :移動到文章的最後。
按 $ :移動到游標所在行的行尾。
按 ^ :移動到游標所在行的行首。
按 w :游標跳到下個字的開頭。
按 e :游標跳到下個字的字尾。
按 b :游標回到上個字的開頭。
按 #l :游標往後移的第#個位置,如:5l,56l .
4). 刪除文字
x :每按一次,刪除游標所在位置的後面一個字元。
#x :刪除游標所在位置的後面#個字元,例如, 6x 表示刪除游標所在位置的後面6個字元。
X :每按一次,刪除游標所在位置的前面一個字元。
#X :刪除游標所在位置的前面#個字元,例如, 20X 表示刪除游標所在位置的前面20個字元。
dd :刪除游標所在行。
#dd :從游標所在行開始刪除#行。
5). 復制
yw :將游標所在之處到字尾的字元復制到緩沖區中。
#yw :復制#個字到緩沖區。
yy :復制游標所在行到緩沖區。
#yy :復制從游標所在行往下#行文字,例如, 6yy 表示復制從游標所在行往下6行文字。
p :將緩沖區內的字元貼到游標所在位置。
注意:所有與 y 有關的復制命令都必須與 p 配合才能完成復制與粘貼功能。
6). 替換
r :替換游標所在處的字元。
R :替換游標所到之處的字元,直到按下 ESC 鍵為止。
7). 回復上一次操作
u :如果您誤執行一個命令,可以馬上按下 u ,回到上一個操作。按多次 u 可以執行多次恢復。
8). 更改
cw :更改游標所在處的字到字尾處
#cw :例如,「3cw」表示更改3個字
9). 跳至指定的行
Ctrl+g 列出遊標所在行的行號。
#G :移動游標至文件的第#行行首,例如, 15G 表示移動游標至文件的第15行行首。
㈣ vi命令行模式怎麼用
任何時候,不管用戶處於何種模式,只要按一下ESC鍵,即可使Vi進入命令模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處於該模式下。在該模式下,用戶可以輸入各種合法的Vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字元都被當做編輯命令來解釋,若輸入的字元是合法的Vi命令,則Vi在接受用戶命令之後完成相應的動作。但需注意的是,所輸入的命令並不在屏幕上顯示出來。若輸入的字元不是Vi的合法命令,Vi會響鈴報警。(BY三人行慕課)
㈤ vi的工作模式
vi編輯器有3種基本工作模式,分別是:命令模式、文本輸入模式和末行模式。下面詳細介紹這3種模式。
命令行模式:該模式是進入vi編輯器後的默認模式。任何時候,不管用戶處於何種模式,按下Esc鍵即可進入命令模式。在該模式下,用戶可以輸入 vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字元都被當作編輯命令來解釋。若輸入的字元是合法的vi命令,則vi在接受用戶命令之後完成相應的動作。但需注意的是,所輸入的命令並不回顯在屏幕上。若輸入的字元不是vi的合法命令,vi會響鈴報警。
文本輸入模式:在命令模式下輸入插入命令i、附加命令a、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字元都被vi當做文件內容保存起來,並將其顯示在屏幕上。在文本輸入過程中,若想末行模式:末行模式也稱ex轉義模式。在命令模式下,用戶按「:」鍵即可進入末行模式下,此時vi會在顯示窗口的最後一行(通常也是屏幕的最後一行)顯示一個「:」作為末行模式的說明符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完後,vi自動回到命令模式。如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i。如果需要從文本模式返回,則按 Esc鍵即可。在命令模式下輸入「:」即可切換到末行模式,然後輸入命令。
末行模式:末行模式也稱ex轉義模式。在命令模式下,用戶按「:」鍵即可進入末行模式下,此時vi會在顯示窗口的最後一行(通常也是屏幕的最後一行)顯示一個「:」作為末行模式的說明符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完後,vi自動回到命令模式。如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i。如果需要從文本模式返回,則按 Esc鍵即可。在命令模式下輸入「:」即可切換到末行模式,然後輸入命令。
㈥ 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 取消行號
㈦ linux vi如何進入命令模式
1、首先打開linux vi,進入到編輯頁面中,
㈧ Linux之vi命令
vi profile
返回
:q 退出
:wq或者:x或者shift+zz 保存並退出
:q! 不保存並退出
:w 保存
:w! 強制保存
編輯到輸入模式:
i 在當前游標前面輸入
I 在當前游標所在行的行首,轉換為輸入模式
a 在當前游標後面輸入
A 在當前游標所在行的行尾,轉換為輸入模式
o 在當前游標所在行的下方,新建一行,並轉為輸入模式
O 在當前游標所在行的上方,新建一行,並轉為輸入模式
1、 移動游標
字元:方向鍵上下左右或者鍵盤kjhl(上下左右)
單詞:w移至下一個單詞的詞首;e跳至當前或下一個單詞的詞尾;b跳至當前或前一個單詞的詞首
行內:0絕對行首;^行首的第一個非空白字元;$絕對行尾
行間:G文章末尾;3G第3行;gg文章開頭
翻屏:ctrl f【往後翻】;Ctrl b【往前翻】
2、 刪除、替換單個字元
x刪除游標位置字元;3x刪除游標開始3個字元;r替換游標位置字元
dw刪除一個單詞;4dw刪除游標開始的4個單詞;dd刪除游標所在行;5dd刪除游標開始的5行
3、復制粘貼剪切
yw復制一個單詞,p在該行粘貼單詞;yy復制整行,p在該行下方粘貼整行
dd剪切整行,p再粘貼整行;dw剪切一個單詞,p再粘貼一個單詞
4、 撤銷&重做
u:撤銷;ctrl+r:重做撤銷的操作;.重復上一步的操作【假設先dd,再.,會再執行dd命令】
1、 set設置
set nu
set nonu
set readonly #設置只讀文件,不能修改,只在當前環境有效,退出文件,再次打開,這個只讀就無效了
set noreadonly #取消只讀
2、 /查找
/after查找文檔中的after【可以找到所有的after】,n向下翻,N向上翻
:/after查找文檔中的after所在行【可以找到所有的after】,n向下翻,N向上翻
3、!執行命令
比如:查找root目錄
:!ls /root/
4、 查找並替換
格式
【 :查找范圍s/查找的詞/要替換的詞/ 】
或者【:查找范圍s#查找的詞#要替換的詞# 】
或者【:查找范圍s%查找的詞%要替換的詞%】,
即分隔符可以是/、#、%
其中, 查找范圍 包括【.當前游標行】;【$末尾行】;【%全文】;【g一行內全部替換】;【i忽略大小寫】
比如 【 :.,$s/after/before/】 表示在當前游標行【.】到末尾【$】這個范圍內,將after替換為before, 但是如果一行有多個after的話,只會把第一個after替換掉 。
比如 【 :%s/after/before/】 表示在全文,將after替換為before,但是如果一行有多個after的話,只會把第一個after替換掉。
比如 【:%s/after/before/g】 ,表示在全文,將after替換為before,但是 如果一行有多個after的話,會把該行所有after替換掉,因為在命令裡面加了g 。
比如 【:%s/after/before/gi】 ,表示在全文,將after替換為before,且忽略大小寫並替換一行內所有after。
比如 【 :%d或者dG】 ,表示刪除全文
比如 【:1,$-4d】 ,表示刪除第一行到倒數第5行的數據
比如 【:1,4y】 ,表示復制1到4行,再按p可粘貼這4行
㈨ 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的輸出結果放到當前行 。