vi編輯命令(轉)

amyz發表於2007-08-10
vi編輯命令(轉)[@more@]

  重複執行命令

  數字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寫到自己終端上的資訊

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-941422/,如需轉載,請註明出處,否則將追究法律責任。

相關文章