這裏記錄下本身在學習vim過程當中的一些坎坷和總結吧!後面補充……html
今天看到很多同窗收藏,看樣子仍是有不少人和我同樣的初級學習菜鳥,哈哈,這裏再次申明,文章主要內容是從連接的原文做者哪裏拷貝出的,其中本身有小的修改,另外,我會參考其餘文章,將經常使用的一些東西都加入進來,後期會慢慢更新,其中一些說的不清楚的地方,我也會實驗後再詳細修改……shell
文章主要內容來源於標題鏈接的原文,這裏記錄些我本身須要記憶的東西,這裏敲一遍純粹是爲了本身加深印象:vim
首先解釋下:編輯器
<C-λ>
。<enter>
回車,例如 — 若是我寫成 :q 也就是說你要輸入 :q<enter>
.:help <command>
→ 顯示相關命令的幫助。你也能夠就輸入 :help 而不跟命令。(陳皓注:退出幫助須要輸入:q)1.各類插入模式ide
2.簡單的移動光標學習
3.拷貝/粘貼 (陳皓注:p/P均可以,p是表示在當前位置以後,P表示在當前位置以前)spa
4.Undo/Redo
撤銷和恢復,這個應該必定會用的到code
<C-r>
→ redo5.打開/保存/退出/改變文件(Buffer)orm
更好
下面,讓咱們看一下vim是怎麼重複本身的:htm
N<command>
→ 重複某個命令N次下面是一個示例,找開一個文件你能夠試試下面的命令:
更強
你要讓你的光標移動更有效率,你必定要了解下面的這些命令,千萬別跳過。
若是你認爲單詞是由默認方式,那麼就用小寫的e和w。默認上來講,一個單詞由字母,數字和下劃線組成(陳皓注:程序變量)
若是你認爲單詞是由blank字符分隔符,那麼你須要使用大寫的E和W。(陳皓注:程序語句)
下面,讓我來講說最強的光標移動:
更快
你必定要記住光標的移動,由於不少命令均可以和這些移動光標的命令連動。不少命令均可以以下來幹:
<start position><command><end position>
例如 0y$ 命令意味着:
你可能夠輸入 ye,從當前位置拷貝到本單詞的最後一個字符。
你也能夠輸入 y2/foo 來拷貝2個 「foo」 之間的字符串。
還有不少時候並不必定你就必定要按y纔會拷貝,下面的命令也會被拷貝:
等等
(陳皓注:可視化選擇是一個頗有意思的命令,你能夠先按v,而後移動光標,你就會看到文本被選擇,而後,你可能d,也可y,也能夠變大寫等)
你只須要掌握前面的命令,你就能夠很舒服的使用VIM了。可是,如今,咱們向你介紹的是VIM殺手級的功能。下面這些功能是我只用vim的緣由。
在當前行上移動光標: 0 ^ $ f F t T , ;
F 和 T → 和 f 和 t 同樣,只不過是相反方向。
dt" → 刪除全部的內容,直到遇到雙引號"。
區域選擇 <action>a<object>
或 <action>i<object>
在visual 模式下,這些命令很強大,其命令格式爲:<action>a<object>
和 <action>i<object>
假設你有一個字符串 (map (+) ("foo")).而光標鍵在第一個 o 的位置。
塊操做:
塊操做,典型的操做: 0 <C-v> <C-d> I-- [ESC]
^ → 到行頭<C-v>
→ 開始塊操做<C-d>
→ 向下移動 (你也可使用hjkl來移動光標,或是使用%,或是別的)I-- [ESC]
→ I是插入,插入「--」,按ESC鍵來爲每一行生效(注意:這裏的I是大寫哦,小寫不行的)。
在Windows下的vim,你須要使用 而不是 , 是拷貝剪貼板。
自動提示: <C-n>
和 <C-p>
在 Insert 模式下,你能夠輸入一個詞的開頭,而後按 或是,自動補齊功能就出現了……
宏錄製: qa 操做序列 q, @a, @@
示例
在一個只有一行且這一行只有「1」的文本中,鍵入以下命令:
- qaYp<C-a>q→ - qa 開始錄製 - Yp 複製行. - <C-a> 增長1. - q 中止錄製. - @a → 在1下面寫下 2 - @@ → 在2 正面寫下3 - 如今作 100@@ 會建立新的100行,並把數據增長到 103.
可視化選擇: v,V,<C-v>
前面,咱們看到了 <C-v>
的示例 (在Windows下應該是<C-q>
),咱們可使用 v 和 V。一但被選好了,你能夠作下面的事:
< 或 >
→ 左右縮進在全部被選擇的行後加上點東西:
<C-v>
<C-d>
或是 /pattern 或是 % 等……)分屏: :split 和 vsplit.
下面是主要的命令,你可使用VIM的幫助 :help split. 你能夠參考本站之前的一篇文章VIM分屏。
<C-w><dir>
: dir就是方向,能夠是 hjkl 或是 ←↓↑→ 中的一個,其用來切換分屏。<C-w>_
(或 <C-w>|
) : 最大化尺寸 (<C-w>|
垂直分屏)<C-w>+
(或 <C-w>-
) : 增長尺寸