玩轉VIM-札記(三)

玩轉VIM-札記(三)html

  眨眼之間,5月就要從指間溜走,不給人一點點遐想的時間,我要趕忙抓着五月的尾巴,在博客中在添一筆。那麼就還接着Vim來講吧。以Vim來爲五月畫上一個句號。shell

返璞歸真vim

  相信通過玩轉Vim-札記(一)玩轉Vim-札記(二)的學習,對於光標的移動已經能作到爲所欲爲了,可是若是想要更快速的操做,如下幾個光標移動的命令也是必不可少的。學習

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

  • 0 → 到行頭
  • ^ → 到本行的第一個非blank字符
  • $ → 到行尾
  • g_ → 到本行最後一個不是blank字符的位置。
  • fa → 到下一個爲a的字符處,你也能夠fs到下一個爲s的字符。
  • t, → 到逗號前的第一個字符。逗號能夠變成其它字符。
  • 3fa → 在當前行查找第三個出現的a。
  • F 和 T → 和 f 和 t 同樣,只不過是相反方向。
  • Line moves

區域選擇 <action>a<object> 或 <action>i<object> .net

  在visual 模式下,這些命令很強大,其命令格式爲code

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

  • action能夠是任何的命令,如 d (刪除), y (拷貝), v (能夠視模式選擇)。
  • object 多是: w 一個單詞, W 一個以空格爲分隔的單詞, s 一個句字, p 一個段落。也能夠是一個特別的字符:"、 '、 )、 }、 ]。

  假設你有一個字符串 (map (+) ("foo")).而光標鍵在第一個 的位置。blog

  • vi" → 會選擇 foo.
  • va" → 會選擇 "foo".
  • vi) → 會選擇 "foo".
  • va) → 會選擇("foo").
  • v2i) → 會選擇 map (+) ("foo")
  • v2a) → 會選擇 (map (+) ("foo"))
  • Text objects selection
塊操做: <C-v>

  塊操做,典型的操做: 0 <C-v> <C-d> I-- [ESC]字符串

  • ^ → 到行頭
  • <C-v> → 開始塊操做
  • <C-d> → 向下移動 (你也可使用hjkl來移動光標,或是使用%,或是別的)
  • I-- [ESC] → I是插入,插入「--」,按ESC鍵來爲每一行生效。
  • Rectangular blocks

  在Windows下的vim,你須要使用 <C-q> 而不是 <C-v> ,<C-v> 是拷貝剪貼板。

自動提示: <C-n> 和 <C-p>

  在 Insert 模式下,你能夠輸入一個詞的開頭,而後按 <C-p>或是<C-n>,自動補齊功能就出現了……

  • Completion
宏錄製: qa 操做序列 q@a@@
  • qa 把你的操做記錄在寄存器 a。
  • 因而 @a 會replay被錄製的宏。
  • @@ 是一個快捷鍵用來replay最新錄製的宏。
  • 示例

    在一個只有一行且這一行只有「1」的文本中,鍵入以下命令:

    • qaYp<C-a>q@a → 在1下面寫下 2
      • qa 開始錄製
      • Yp 複製行.
      • <C-a> 增長1.
      • q 中止錄製.
    • @@ → 在2 正面寫下3
    • 如今作 100@@ 會建立新的100行,並把數據增長到 103.
  • Macros
可視化選擇: v,V,<C-v> 

  前面,咱們看到了 <C-v>的示例 (在Windows下應該是<C-q>),咱們可使用 v 和 V。一但被選好了,你能夠作下面的事:

  • J → 把全部的行鏈接起來(變成一行)
  • < 或 > → 左右縮進
  • = → 自動給縮進 
  • Autoindent

  在全部被選擇的行後加上點東西:

  • <C-v>
  • 選中相關的行 (可以使用 j 或 <C-d> 或是 /pattern 或是 % 等……)
  • $ 到行最後
  • A, 輸入字符串,按 ESC。
  • Append to many lines
分屏: :split 和 vsplit 

  下面是主要的命令,你可使用VIM的幫助 :help split. 你能夠參考陳皓之前的一篇文章VIM分屏

  • :split → 建立分屏 (:vsplit建立垂直分屏)
  • <C-w><dir> : dir就是方向,能夠是 hjkl 或是 ←↓↑→ 中的一個,其用來切換分屏。
  • <C-w>_ (或 <C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏)
  • <C-w>+ (或 <C-w>-) : 增長尺寸
  • Split

 

  參考:http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/

 

PS:本博客歡迎轉發,但請註明博客地址及做者,因本人水平有限,如有不對之處,歡迎指出,謝謝~

  博客地址:http://www.cnblogs.com/voidy/

  博客新址:http://voidy.net

  <。)#)))≦

相關文章
相關標籤/搜索