1. 程式人生 > >Linux - VIM選擇文字塊/複製/貼上

Linux - VIM選擇文字塊/複製/貼上

1. vi 和vim 的區別

它們都是多模式編輯器,不同的是vim 是vi的升級版本,它不僅相容vi的所有指令,而且還有一些新的特性在裡面。

vim的這些優勢主要體現在以下幾個方面:

  1. 多級撤消
    我們知道在vi裡,按 u只能撤消上次命令,而在vim裡可以無限制的撤消。

  2. 易用性
    vi只能運行於unix中,而vim不僅可以運行於unix,windows ,mac等多操作平臺。

  3. 語法加亮
    vim可以用不同的顏色來加亮你的程式碼。

  4. 視覺化操作
    就是說vim不僅可以在終端執行,也可以運行於x window、 mac os、 windows。

  5. 對vi的完全相容
    某些情況下,你可以把vim當成vi來使用。

vi和vim都是Linux中的編輯器,不同的是vim比較高階,可以視為vi的升級版本。vi使用於文字編輯,但是vim更適用於coding。

vi有3個模式:插入模式、命令模式、低行模式。

  1. 插入模式(command mode):在此模式下可以輸入字元,按ESC將回到命令模式。
  2. 命令模式(Insert mode):可以移動游標、刪除字元等。
  3. 末行模式 (last line mode):可以儲存檔案、退出vi、設定vi、查詢等功能(低行模式也可以看作是命令模式裡的)。

命令模式:vi啟動後預設進入的是命令模式,從這個模式使用命令可以切換到另外兩種模式,同時無論在任何模式下只要按一下[Esc]鍵都可以返回命令模式。在命令模式中輸入字幕“i”就可以進入vi的輸入模式編輯檔案。

輸入模式:在這個模式中我們可以編輯、修改、輸入等編輯工作,在編輯器最後一行顯示一個“–INSERT–”標誌著vi進入了輸入模式。當我們完成修改輸入等操作的時候我們需要儲存檔案,這時我們需要先返回命令模式,在進入末行模式儲存。

末行模式:在命令模式輸入“:”即可進入該模式,在末行模式中有好多好用的命令。

2.編輯操作

2.1進入輸入模式命令:
  i插入命令 a附加命令 o開啟命令 c修改命令
  r取代命令 s替換命令 Esc退出命令

2.2輸入模式的操作
  Home游標到行首
  End 游標到行尾
  Page Up和Page Down上下翻頁
  Delect刪除游標位置的字元

2.3刪除操作(命令模式使用)
  x刪除游標處的單個字元
  dd刪除游標所在行
  dw刪除當前字元到單詞尾包括空格的所有字元
  #x例如3x刪除游標處向右的三個字元
  #dd例如3dd從當前行開始向下刪除三行文字

2.4撤銷操作
  u命令取消最近一次的操作,可以使用多次來恢復原有的操作
  U取消所有操作
  Ctrl+R可以恢復對使用u命令的操作

2.5複製操作
  yy命令複製當前整行的內容到vi緩衝區
  yw複製當前游標所在位置到單詞尾字元的內容到vi快取區,相當於複製一個單詞
  y$複製游標所在位置到行尾內容到快取區
  y^複製游標所在位置到行首內容到快取區
  #yy例如:5yy就是複製5行
  #yw例如:2yw就是複製兩個單詞

如果要複製第m行到第n行之間的內容,可以在末行模式中輸入m,ny例如:3,5y複製第三行到第五行內容到快取區。

2.6. 操作步驟

1)如果想退出 vi,則需要先切換到底行模式;

2)在插入模式下,先按ESC鍵,然後按下:鍵,則切換到底行模式;

3)如果想儲存當前編輯的內容,在:後輸入wq! ,即 :wq! ,這樣就將文字儲存了.然後退出了vi編 輯器。

4)如果不想儲存當前編輯的內容,在:後輸入q! ,即 :q! ,這樣放棄本次編輯直接退出了vi編輯器。 ;

5)字母的含意義:

w:write;

q:quit;

!:強制指定,當多人同時修改一個檔案,修改只讀檔案等情況比較有意義,因此單人操作的機器中,可以省略。

3.查詢和替換

vi的查詢和替換功能主要在末行模式完成:

3.1至上而下的查詢
  / 要查詢的字元竄,其中/代表從游標所在位置起開始查詢,例如:/ work

3.2至下而上的查詢
  要查詢的字串例如:/ work

3.3替換
  : s/old/new用new替換行中首次出現的old
  : s/old/new/g 用new替換行中所有出現的old
  :#,# s/old/new/g用new替換從第#行到第#行中出現的old
  :% s/old/new/g用new替換整篇中出現的old

如果替換的範圍較大時,在所有的命令尾加一個c命令,強制每個替換需要使用者進行確認,例如:s/old/new/c 或s/old/new/gc

4.恢復檔案

vi在編輯某一個檔案時,會生成一個臨時檔案,這個檔案以 . 開頭並以 .swp結尾。正常退出該檔案自動刪除,如果意外退出例如忽然斷電,該檔案不會刪除,我們在下次編輯時可以選擇一下命令處理:
  O只讀開啟,不改變檔案內容
  E繼續編輯檔案,不恢復.swp檔案儲存的內容
  R將恢復上次編輯以後未儲存檔案內容
  Q退出vi
  D刪除.swp檔案
  或者使用vi -r 檔名來恢復未儲存的內容