【轉載】Vim簡明教程【CoolShell】

來源:互聯網
上載者:User

 
  1. 什麼也別幹!請先閱讀

    Normal 模式下。
  • Insert 模式,請按下鍵 i 。(陳皓註:你會看到vim左下角有一個–insert–字樣,表示,你可以以插入的方式輸入了)
  • Normal 模式,請按 ESC 鍵。

Insert 和 Normal 模式下切換了。下面是一些命令,可以讓你在 Normal 模式下倖存下來:

i →  Insert 模式,按  ESC 回到  Normal 模式.
  • x → 刪當前游標所在的一個字元。
  • :wq → 存檔 + 退出 (:w 存檔, :q 退出)   (陳皓註::w 後可以跟檔案名稱)
  • dd → 刪除當前行,並把刪除的行存到剪貼簿裡
  • p → 粘貼剪貼簿
  • 推薦:

      hjkl (強例推薦使用其移動游標,但不必需) →你也可以使用游標鍵 (←↓↑→). 注:  j 就像下箭頭。
    • :help <command> → 顯示相關命令的協助。你也可以就輸入 :help 而不跟命令。(陳皓註:退出協助需要輸入:q)

    Normal 模式。在一般的編輯器下,當你需要copy一段文字的時候,你需要使用 Ctrl 鍵,比如:Ctrl-C。也就是說,Ctrl鍵就好像功能鍵一樣,當你按下了功能鍵Ctrl後,C就不在是C了,而且就是一個命令或是一個快鍵鍵了,在VIM的Normal模式下,所有的鍵就是功能鍵了。這個你需要知道。

      Ctrl-λ我會寫成  <C-λ>.
    • : 開始的命令你需要輸入 <enter>斷行符號,例如 — 如果我寫成 :q 也就是說你要輸入 :q<enter>.

      各種插入模式
      a → 在游標後插入
    1. o → 在當前行後插入一個新行
    2. O → 在當前行前插入一個新行
    3. cw → 替換從游標所在位置後到一個單詞結尾的字元
    4. 簡單的移動游標
      0 → 數字零,到行頭
    5. ^ → 到本行第一個不是blank字元的位置(所謂blank字元就是空格,tab,換行,斷行符號等)
    6. $ → 到本行行尾
    7. g_ → 到本行最後一個不是blank字元的位置。
    8. /pattern → 搜尋 pattern 的字串(陳皓註:如果搜尋出多個匹配,可按n鍵到下一個)
    9. 拷貝/粘貼 (陳皓註:p/P都可以,p是表示在當前位置之後,P表示在當前位置之前)
      P → 粘貼
    10. yy → 拷貝當前行當行於 ddP
    11. Undo/Redo
      u → undo
    12. <C-r> → redo
    13. 開啟/儲存/退出/改變檔案(Buffer)
      :e <path/to/file> → 開啟一個檔案
    14. :w → 存檔
    15. :saveas <path/to/file> → 另存新檔 <path/to/file>
    16. :x, ZZ 或 :wq → 儲存並退出 (:x 表示僅在需要時儲存,ZZ不需要輸入冒號並斷行符號)
    17. :q! → 退出不儲存 :qa! 強行退出所有的正在編輯的檔案,就算別的檔案有更改。
    18. :bn 和 :bp → 你可以同時開啟很多檔案,使用這兩個命令來切換下一個或上一個檔案。(陳皓註:我喜歡使用:n到下一個檔案)

      . → (小數點) 可以重複上一次的命令

    2dd → 刪除2行
  • 3p → 粘貼文本3次
  • 100idesu [ESC] → 會寫下 “desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu “
  • . → 重複上一個命令—— 100 “desu “.
  • 3. → 重複 3 次 “desu” (注意:不是 300,你看,VIM多聰明啊).
  • 千萬別跳過。

      G → 到第 N 行 (陳皓註:注意命令中的G是大寫的,另我一般使用 : N 到第N行,如 :137 到第137行)
    1. gg → 到第一行。(陳皓註:相當於1G,或 :1)
    2. G → 到最後一行。
    3. w → 到下一個單詞的開頭。
    4. e → 到下一個單詞的結尾。

    % : 匹配括弧移動,包括 ({[. (陳皓註:你需要把游標先移到括弧上)

  • * 和 #:  匹配游標當前所在的單詞,移動游標到下一個(或上一個)匹配單詞(*是下一個,#是上一個)
  • <start position><command><end position>

    0y$ 命令意味著:

      0 → 先到行頭
    • y → 從這裡開始拷貝
    • $ → 拷貝到本行最後一個字元

    ye,從當前位置拷貝到本單詞的最後一個字元。

    y2/foo 來拷貝2個 “foo” 之間的字串。

      d (刪除 )
    • v (可視化的選擇)
    • gU (變大寫)
    • gu (變小寫)
    (陳皓註:可視化選擇是一個很有意思的命令,你可以先按v,然後移動游標,你就會看到文本被選擇,然後,你可能d,也可y,也可以變大寫等)

    ^ $ f F t T , ;

    0 → 到行頭
  • ^ → 到本行的第一個非blank字元
  • $ → 到行尾
  • g_ → 到本行最後一個不是blank字元的位置。
  • fa → 到下一個為a的字元處,你也可以fs到下一個為s的字元。
  • t, → 到逗號前的第一個字元。逗號可以變成其它字元。
  • 3fa → 在當前行尋找第三個出現的a。
  • F 和 T → 和 f 和 t 一樣,只不過是相反方向。
    dt" → 刪除所有的內容,直到遇到雙引號—— "。

    <action>a<object> 或 <action>i<object>

    <action>a<object> 和 <action>i<object>

      d (刪除),  y (拷貝),  v (可以視模式選擇)。
    • w 一個單詞, W 一個以空格為分隔的單詞, s 一個句字, p 一個段落。也可以是一個特別的字元:"、 '、 )、 }、 ]。

    (map (+) ("foo")).而游標鍵在第一個 的位置。

    vi" → 會選擇  foo.
  • va" → 會選擇 "foo".
  • vi) → 會選擇 "foo".
  • va) → 會選擇("foo").
  • v2i) → 會選擇 map (+) ("foo")
  • v2a) → 會選擇 (map (+) ("foo"))
  • 0 <C-v> <C-d> I-- [ESC]

      ^ → 到行頭
    • <C-v> → 開始塊操作
    • <C-d> → 向下移動 (你也可以使用hjkl來移動游標,或是使用%,或是別的)
    • I-- [ESC] → I是插入,插入“--”,按ESC鍵來為每一行生效。

     而不是 <C-v> ,<C-v> 是拷貝剪貼簿。

    <C-n> 和  <C-p>

    <C-p>或是<C-n>,自動補齊功能就出現了……

    qa 操作序列 q@a@@

      qa 把你的操作記錄在寄存器  a。
    • @a 會replay被錄製的宏。
    • @@ 是一個快速鍵用來replay最新錄製的宏。
    樣本

      qaYp<C-a>q→
        qa 開始錄製
      • Yp 複製行.
      • <C-a> 增加1.
      • q 停止錄製.
    • @a → 在1下面寫下 2
    • @@ → 在2 正面寫下3
    • 100@@ 會建立新的100行,並把資料增加到 103.

    ,V,<C-v>

    <C-v>的樣本 (在Windows下應該是<C-q>),我們可以使用 v 和 V。一但被選好了,你可以做下面的事:

      J → 把所有的行串連起來(變成一行)
    • < 或 > → 左右縮排
    • = → 自動給縮排 (陳皓註:這個功能相當強大,我太喜歡了)

    <C-v>

  • j 或 <C-d> 或是 /pattern 或是 % 等……)
  • $ 到行最後
  • A, 輸入字串,按 ESC。
  •  和 vsplit.

    :help split. 你可以參考本站以前的一篇文章VIM分屏。

    :split → 建立分屏 ( :vsplit建立垂直分屏)
  • <C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一個,其用來切換分屏。
  • <C-w>_ (或 <C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏)
  • <C-w>+ (或 <C-w>-) : 增加尺寸
    • :help usr_02.txt.
    • !, 目錄,寄存器,外掛程式等很多其它的功能。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.