Vim 練級

來源:互聯網
上載者:User

標籤:vim   linux   

自從進入這家公司以來,時不時的被旁邊的大神們震撼,先是每次被他在終端上熟練的命令列折服,再是被他在vim上修改代碼時那快捷的搜尋、替換震撼到。

每次向他求助,第一句話就是:“給我終端!”。oh ,my god ——”給我終端!”

因此,我決定好好學習一下 Linux上的 命令列,和Vim。說實在的,自己使用終端也有一段時間了,學習vim也有一段時間了。

感覺,終端真的很強大,在我尋找硬碟上的檔案時,非常便捷;而vim在我修改軟體的配置時,更是遊刃有餘,但凡是文本類的設定檔,vim通殺。

以下是,我在讀完這個文章時,提煉出來的vim命令。更詳細的文章請閱讀:

簡明 Vim 練級攻略

在上面文章中,作者提到,關於vim的練級攻略,共分為4部分,感覺非常棒,我照著這個練級攻略練習了一個禮拜,已經是感覺神清氣爽了:

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

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

第二級:
1   各種插入模式?   a → 在游標後插入?   o → 在當前行後插入一個新行?   O → 在當前行前插入一個新行?   cw → 替換從游標所在位置後到一個單詞結尾的字元   2   簡單的移動游標?   0 → 數字零,到行頭?   ^ → 到本行第一個不是blank字元的位置(所謂blank字元就是空格,tab,換行,斷行符號等)?   $ → 到本行行尾?   g_ → 到本行最後一個不是blank字元的位置。?   /pattern → 搜尋 pattern 的字串(陳皓註:如果搜尋出多個匹配,可按n鍵到下一個)  3   拷貝/粘貼 (陳皓註:p/P都可以,p是表示在當前位置之後,P表示在當前位置之前)?   P → 粘貼?   yy → 拷貝當前行當行於 ddP   4   Undo/Redo?   u → undo?   <C-r> → redo    5   開啟/儲存/退出/改變檔案(Buffer)?   :e <path/to/file> → 開啟一個檔案?   :w → 存檔?   :saveas <path/to/file> → 另存新檔 <path/to/file>?   :x, ZZ 或 :wq → 儲存並退出 (:x 表示僅在需要時儲存,ZZ不需要輸入冒號並斷行符號)?   :q! → 退出不儲存 :qa! 強行退出所有的正在編輯的檔案,就算別的檔案有更改。?   :bn 和 :bp → 你可以同時開啟很多檔案,使用這兩個命令來切換下一個或上一個檔案。(陳皓註:我喜歡使用:n到下一個檔案)
第三級:
. (小數點)  ——>可以重複上一次的命令N<Command> ——>重複上一次命令N次。NG ——> 100G ,跳轉到100行gg ——> 到第一行G ——> 到最後一行 按照單詞移動:    1、w——>到下一個單詞的開頭    2、e——>到下一個單詞的結尾    如果單詞是預設(單詞、數字、底線——程式變數),用小寫 w 和 e    如果單詞是由blank字元分隔字元,用大寫的W 和 E% : 匹配括弧移動,包括 (, {, [. (需要把游標先移到括弧上)* 和 #:  匹配游標當前所在的單詞,移動游標到下一個(或上一個)匹配單詞(*是下一個,#是上一個)0y$:0 → 先到行頭y → 從這裡開始拷貝$ → 拷貝到本行最後一個字元ye:從當前位置拷貝到本單詞的最後一個字元 y2/foo :拷貝2個 “foo” 之間的字串d (刪除 )v (可視化的選擇)gU (變大寫)gu (變小寫)    可視化選擇是一個很有意思的命令,你可以先按v,然後移動游標,你就會看到文本被選擇,然後,你可能d,也可y,也可以變大寫等
第四級:

在當前行上移動游標: 0 ^ $ f F t T , ;

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

地區選取項目 a 或 i

action可以是任何的命令,如 d (刪除), y (拷貝), v (可以視模式選擇)。
object 可能是: w 一個單詞, W 一個以空格為分隔的單詞, s 一個句字, p 一個段落。也可以是一個特別的字元:”、 ‘、 )、 }、 ]。
假設你有一個字串 (map (+) (“foo”)).而游標鍵在第一個 o 的位置。
vi” → 會選擇 foo; va” → 會選擇 “foo”.
vi) → 會選擇 “foo” ; va) → 會選擇(“foo”).
v2i) → 會選擇 map (+) (“foo”) ; v2a) → 會選擇 (map (+) (“foo”))

塊操作:

塊操作,典型的操作: 0 I– [ESC]
^ → 到行頭
→ 開始塊操作
→ 向下移動 (你也可以使用hjkl來移動游標,或是使用%,或是別的)
I– [ESC] → I是插入,插入“—”,按ESC鍵來為每一行生效。

自動提示: 和

在 Insert 模式下,你可以輸入一個詞的開頭,然後按 或是,自動補齊功能就出現了…

宏錄製: qa 操作序列 q, @a, @@

qa 把你的操作記錄在寄存器 a。
於是 @a 會replay被錄製的宏。
@@ 是一個快速鍵用來replay最新錄製的宏。
樣本:在一個只有一行且這一行只有“1”的文本中,鍵入如下命令:
qaYpq→qa 開始錄製 ;Yp 複製行; 增加1;q 停止錄製;@a → 在1下面寫下 2;@@ → 在2 正面寫下3
現在做 [email protected]@ 會建立新的100行,並把資料增加到 103.

可視化選擇: v,V,

前面,我們看到了 的樣本。一但被選好了,你可以做下面的事:
J → 把所有的行串連起來(變成一行)
< 或 > → 左右縮排
= → 自動給縮排 (陳皓註:這個功能相當強大,我太喜歡了)
在所有被選擇的行後加上點東西:
: 選中相關的行 (可使用 j 或 或是 /pattern 或是 % 等……)
$ 到行最後
A, 輸入字串,按 ESC。

分屏: :split 和 vsplit.

下面是主要的命令,你可以使用VIM的協助 :help split. 你可以參考本站以前的一篇文章VIM分屏。
:split → 建立分屏 (:vsplit建立垂直分屏)

: dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一個,其用來切換分屏。
_ (或 |) : 最大化尺寸 (| 垂直分屏)
+ (或 -) : 增加尺寸

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

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.