Vim tips

来源:互联网 发布:java环境变量设置win10 编辑:程序博客网 时间:2024/05/18 00:30

暫存器類:
  • yiw (yank inner word) 複製游標所在的完整的詞 (光標不需在該詞的開頭)
  • "vyiw 可以將光標所在的詞複製到 v 暫存器,其中 "v 為指定暫存器,可以用不同暫存器儲存不同的資料,再用 CTRL-R + v 或其他暫存器來插入,另外 CTRL-R + " 為最後存入暫存器的內容
  • 錄製 MACRO 也是用到相同的暫存器,使用 q{a~z} 來決定錄製哪個暫存器,當錄製結束後按 q 結束,利用 @{a~z} 來回放 MACRO,多次回放可以再前面加次數: 3@{a~z} 表示執行回放 3 次。
  • 若要修改 MARCO 不想重新錄製,可以在 INSERT 模式下 "{a~z}p (表示貼上指定暫存器的內容),修改後再透過 "{a~z}y 存回暫存器。

大小寫轉換:
  • gUw: 將游標的詞轉為大寫
  • guw: 將游標的詞轉為小寫
  • gUU: 整行轉大寫
  • guu:  整行轉小寫
  • g~:    將選取的範圍大小寫互轉
  • g~~: 整行大小寫互轉

區塊操作:
  • VIM 的區塊操作是 <C-V>,但在Windows 系統下<C-V> 是當貼上,所以安裝 GVIM 時內建會 MAP 為 <C-Q>
  • <C-Q> 開始區塊操作,再按 hjkl 來選擇區塊範圍
  • 區塊範圍選好後,我常用的操作有
    • 下 y 複製選取的區塊,再到另外一個位置下 p 可以區塊貼上(跟 ultraEdit 的區塊貼上一樣)
    • 下 = 來做程式碼的對齊 (補充: 用v,V選取後也可以下=來對齊!!)
    • 下 Ixxx<ESC> 可以在選取的區塊每一行加入東西... 如下 I//<ESC> 就可以在每一選取範圍開頭加入// 
      • 注意是下大寫 I (插入) 再輸入要插入的字符,輸入時選擇區塊反白會不見好像變成單行操作而非區塊操作,不過不要怕,記得輸入完要下 <ESC> 就會對整個區塊輸入剛剛插入的字符了。
    • 下 cxxxx<ESC> 可以取代圈選的區塊內容,即先用 <C-Q>選區塊後下 c,之後開始敲入取代的內容,輸入完畢後按 <ESC> 就可以 apply 所有的圈選區域。
區域選取:     <action>a<object> 和 <action>i<object>
  • action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。
  • object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。

假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 的位置。

  • vi" → 会选择 foo.
  • va" → 会选择 "foo".
  • vi) → 会选择 "foo".
  • va) → 会选择("foo").
  • v2i) → 会选择 map (+) ("foo")
  • v2a) → 会选择 (map (+) ("foo"))

Text objects selection

原创粉丝点击