?Vi是“Visual interface”的簡稱,它在Linux上的地位就仿佛Edit程序在Dos上一樣。它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要對其進行定制,這是其他編輯程序所沒有的。
?? Vi不是一個排版程序,它不象Word或WPS那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程序。
?? Vi沒有菜單,只有命令,且命令繁多。Vi有三種基本工作模式:命令行模式、文本輸入模式和末行模式。
?? 一、由一般模式轉到輸入模式的命令
?? 1〉光標移動命令
?? 2〉刪除操作命令
?? 3〉改變與替換操作命令
?? 4〉查詢命令
/abc 向前查詢abc
?abc?向后查詢abc
n?向前繼續查詢
/n?n?向后繼續查詢
?? 5〉拷貝與粘貼命令
?? 6〉文件編輯、保存及退出vi命令
?? 三、進入vi的命令
?? 四、文件命令
?? Vi不是一個排版程序,它不象Word或WPS那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程序。
?? Vi沒有菜單,只有命令,且命令繁多。Vi有三種基本工作模式:命令行模式、文本輸入模式和末行模式。
???命令行模式?(command mode/一般模式)
???任何時候,不管用戶處于何種模式,只要按一下鍵,即可使Vi進入命令行模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處于該模式下。?
???在該模式下,用戶可以輸入各種合法的Vi命令,用于管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令并不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。?
???文本輸入模式?(input mode/編輯模式)
???在命令模式下輸入插入命令i、附加命令a?、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當做文件內容保存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按鍵即可。?
???末行模式?(last line mode/指令列命令模式)
???末行模式也稱ex轉義模式。?
???Vi和Ex編輯器的功能是相同的,二者主要區別是用戶界面。在Vi中,命令通常是單個鍵,例如i、a、o等;而在Ex中,命令是以按回車鍵結束的正文行。Vi有一個專門的“轉義”命令,可訪問很多面向行的Ex命令。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完后,Vi自動回到命令模式。
???任何時候,不管用戶處于何種模式,只要按一下鍵,即可使Vi進入命令行模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處于該模式下。?
???在該模式下,用戶可以輸入各種合法的Vi命令,用于管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令并不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。?
???文本輸入模式?(input mode/編輯模式)
???在命令模式下輸入插入命令i、附加命令a?、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當做文件內容保存起來,并將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按鍵即可。?
???末行模式?(last line mode/指令列命令模式)
???末行模式也稱ex轉義模式。?
???Vi和Ex編輯器的功能是相同的,二者主要區別是用戶界面。在Vi中,命令通常是單個鍵,例如i、a、o等;而在Ex中,命令是以按回車鍵結束的正文行。Vi有一個專門的“轉義”命令,可訪問很多面向行的Ex命令。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完后,Vi自動回到命令模式。
?? 一、由一般模式轉到輸入模式的命令
?? 1〉光標移動命令
0?移動到光標所在列的最前面[Home]
$?移動到光標所在列的最後面[End]
[CTRL][d]?向下半頁[PageDown]
[CTRL][f]?向下一頁
[CTRL][u]?向上半頁
[CTRL][b]?向上一頁[PageUp]?
H移動到視窗的第一列
M移動到視窗的中間列
L移動到視窗的最後列
nG直接用數字?n?加上大寫?G?移動到第?n?行?(等同于命令“:n”)?
fx往右移動到?x?字符上
tx往右移動到?x?字符前
shift?+g?跳到文件尾?(等同于G)
gg?跳到文件頭
xp?交換兩個字符位置
ddp?上下兩行調換
[ 移到文件開始位置
] 移到文件結束位置
nk向上移n行
n↑向上移n行
n-向上移n行,光標在該行的起始
ni? 向下移n行
n+向下移n行,光標在該行的起始
n↓向下移動n行
$?移動到光標所在列的最後面[End]
[CTRL][d]?向下半頁[PageDown]
[CTRL][f]?向下一頁
[CTRL][u]?向上半頁
[CTRL][b]?向上一頁[PageUp]?
H移動到視窗的第一列
M移動到視窗的中間列
L移動到視窗的最後列
nG直接用數字?n?加上大寫?G?移動到第?n?行?(等同于命令“:n”)?
fx往右移動到?x?字符上
tx往右移動到?x?字符前
shift?+g?跳到文件尾?(等同于G)
gg?跳到文件頭
xp?交換兩個字符位置
ddp?上下兩行調換
[ 移到文件開始位置
] 移到文件結束位置
nk向上移n行
n↑向上移n行
n-向上移n行,光標在該行的起始
ni? 向下移n行
n+向下移n行,光標在該行的起始
n↓向下移動n行
?? 2〉刪除操作命令
x?刪除光標所在的字符
dw?刪除光標所在的單詞
d?$?刪除光標至行尾的所有字符
/d?d?同/d?d?$
dd?刪除當前行
dnd?刪除當前n行
可在刪除命令前加上數字,如<5x表示刪除5行。
dw?刪除光標所在的單詞
d?$?刪除光標至行尾的所有字符
/d?d?同/d?d?$
dd?刪除當前行
dnd?刪除當前n行
可在刪除命令前加上數字,如<5x表示刪除5行。
?? 3〉改變與替換操作命令
r?替換光標所在的字符
/rr?替換字符序列
c?$?替換自光標位置至行尾的所有字符
/rr?替換字符序列
c?$?替換自光標位置至行尾的所有字符
?? 4〉查詢命令




?? 5〉拷貝與粘貼命令
/yw?將光標所在單詞拷入剪貼板
y$?將光標至行尾的字符拷入剪貼板
Y?同
yy?將當前行拷入剪貼板
yny??將當前n行拷入剪貼板
p?將剪貼板中的內容粘貼在光標后
P?將剪貼板中的內容粘貼在光標前
y$?將光標至行尾的字符拷入剪貼板
Y?同
yy?將當前行拷入剪貼板
yny??將當前n行拷入剪貼板
p?將剪貼板中的內容粘貼在光標后
P?將剪貼板中的內容粘貼在光標前
?? 6〉文件編輯、保存及退出vi命令
:q?不保存退出
:q!?不保存強制性退出
:w?保存編輯
:w?filename?存入文件filename中
:w!?filename?強制性存入文件filename中
:wq?/?:x?/?ZZ?保存退出
:q!?不保存強制性退出
:w?保存編輯
:w?filename?存入文件filename中
:w!?filename?強制性存入文件filename中
:wq?/?:x?/?ZZ?保存退出
?? 三、進入vi的命令
vi?filename:?打開或新建文件,并將光標置于第一行首?
vi?+n?filename:?打開文件,并將光標置于第n行首?
vi?+?filename:?打開文件,并將光標置于最后一行首?
vi?+/pattern?filename:?打開文件,并將光標置于第一個與pattern匹配的串處?
vi?-r?filename:?在上次正用vi編輯時發生系統崩潰,恢復filename?
vi?filename
.filename:?打開多個文件,依次進行編輯
vi + /word filename:進入vi并且由文件的word這個字開始
vi?+n?filename:?打開文件,并將光標置于第n行首?
vi?+?filename:?打開文件,并將光標置于最后一行首?
vi?+/pattern?filename:?打開文件,并將光標置于第一個與pattern匹配的串處?
vi?-r?filename:?在上次正用vi編輯時發生系統崩潰,恢復filename?
vi?filename

vi + /word filename:進入vi并且由文件的word這個字開始
?? 四、文件命令
?sz?下載文件
?rz?上傳文件
?rz?上傳文件
|