【轉】VI/VIM常用命令

來源:互聯網
上載者:User

標籤:

原文網址:http://www.blogjava.net/woxingwosu/archive/2007/09/06/125193.html


   Vi是“Visual interface”的簡稱,它在Linux上的地位就彷彿Edit程式在Dos上一樣。它可以執行輸出、刪除、尋找、替換、塊操作等眾多文本操作,而且使用者可以根據自己的需要對其進行定製,這是其他編輯程式所沒有的。
 
   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自動回到命令模式。


   一、由一般模式轉到輸入模式的命令
   1〉游標移動命令

0 移動到游標所在列的最前面[Home]
$ 移動到游標所在列的最後面[End]
[CTRL][d] 向下半頁
[CTRL][f] 向下一頁[PageDown]
[CTRL][u] 向上半頁
[CTRL][b] 向上一頁[PageUp] 
H移動到視窗的第一列
M移動到視窗的中間列
L移動到視窗的最後列
G移動到檔案最後列
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行
w  向前移動一個word
nw  向前移動n個word
→  向右移動一個字元【l】
←  向左移動一個字元【h】
↑  向上移動一行【k】
↓  向下移動一行【j】


   2〉刪除操作命令

x 刪除游標所在的字元【delete】
dw 刪除游標所在的單詞
d $ 刪除游標至行尾的所有字元
/d d 同/d d $
dd 刪除當前行
dnd 刪除當前n行
dG  刪除當前行到最後一行
可在刪除命令前加上數字,如<5x表示刪除5行。


   3〉改變與替換操作命令

r 替換游標所在的字元
/rr 替換字元序列
c $ 替換自游標位置至行尾的所有字元
cl 修改當前字元
cc 修改當前行
c$ 修改到行尾的內容
:%s#abc#123#g 將文中的所有abc都替換為123
ddp  上下兩行交換(其實是先dd,然後執行p)


   4〉查詢命令

/string 往前搜尋string【支援正則】
n 尋找下一個
?string  往後搜尋string
/+上下箭頭 搜尋曆史
:+上下箭頭 :命令的曆史
* 往前尋找當前word,前提是游標移動到要尋找的word
# 往後尋找當前word,前提是游標移動到要尋找的word
/\<word\> 只匹配word,不匹配wordstr等等
%  尋找匹配的括弧,前提是游標要在一邊的括弧上
fx  在當前行移動到下一個字元x


   5〉拷貝與粘貼命令

yw 將游標所在單詞拷入剪貼簿
y$ 將游標至行尾的字元拷入剪貼簿
Y 同
yy 將當前行拷入剪貼簿
yny  將當前n行拷入剪貼簿
p 將剪貼簿中的內容粘貼在游標後
P 將剪貼簿中的內容粘貼在游標前


   6〉檔案編輯、儲存及退出vi命令

:q 不儲存退出
:q! 不儲存強制性退出
:w 儲存編輯
:w filename 存入檔案filename中
:w! filename 強制性存入檔案filename中
:wq / :x / ZZ 儲存退出
:wq!  強制儲存然後退出


   7〉其他命令

:args  顯示當前檔案名稱
u   撤銷,相當於Ctrl+z
U   一次撤銷一行的所有操作
Ctrl+R  重做
:help  查看所有協助
:help  0  查看關於0的協助
ZZ  退出協助,回到編輯模式 
Ctrl+G  知道【檔案名稱  是否修改  當前第一行  前面所佔行的百分比】
Ctrl+v  選擇一個塊
:set number  顯示行號
:set nonumber  不顯示行號
:set rule  顯示光線標位置
:set ignorecase  搜尋不區分大小寫
:set noignorecase 搜尋區分大小寫
:ab string string 提示(比如:ab abc abcdefg,當輸入abc然後輸入空格,abc自動變為abcdefg)
:new filename 開啟或建立檔案,如果不指定檔案名稱或者檔案名稱不存在則是建立檔案。
:set ruler 開啟游標的行列位置顯示功能 
:set shiftwidth=4 設定自動縮排格數 
:set autoindent 開啟自動縮排功能
:set paste 粘貼的時候關閉自動縮排
:set nopaste 粘貼的時候開啟自動縮排


   三、進入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這個字開始


    注意:Ctrl+S在Linux下是停止顯示終端的輸出,這個時候螢幕就像定住了一樣,終端不會繼續輸出,也不會響應你的輸入,需要按一下 Ctrl-Q 即可恢複輸入。

    命令大多了,還是看文檔。

 

 

【轉】VI/VIM常用命令

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.