vi/vim經常使用按鍵

最近這段時間堅持了vim的使用,我在個人IDEA裏面加了一個插件,能夠支持vim。node

而後不論是IDEA仍是Vim都有本身的按鍵,並且都很好用,因此我就總結下在IDEA下的vim使用命令vim

固然,都是原生命令,我總結的是我本身常常用到的,我也是剛開始使用,還不太熟練。markdown

記載在博客之後就不用去搜索去查了。編輯器

因此本文不是vim命令教學,而是介紹IDEA和VIM的混用。學習

本文關於Vim的幾個模式就不介紹了,若是有讀者想借鑑個人習慣,確定是有vim基礎的。spa

我所介紹的都是根據我實際狀況所須要用的,不會介紹徹底部。插件

1. 經常使用的插入命令3d

其實這幾個都不是必須的,但也是要會用的,由於你大能夠在正常狀況下移動到想要編輯的地方,而後再打開VIM編輯器。code

像在光標下插入新行,你用IDEA的shift+Enter也能夠,因此我想說的是IDEA和VIM的東西你能夠混着用,對本身效率有提高就能夠了blog

2. 經常使用的定位命令

  • 設置行號開啓,不過在IDEA裏面確定是開有行號的,因此也沒必要用vim來控制
:set nu

//取消行號
:set nonu

行的移動,關於行的移動仍是會用到,通常像移動到第n行,或者視圖選擇時想作全選操做

  • 移動到第一行
    gg
  • 移動到最後一行
    G
  • 移動到n行
    nG
  • 移動到行首
    0

    //其實你也能夠用Home鍵 因此說我買的鍵盤至少是87鍵的,不是說非要什麼都用vim的命令,只要能達到目的都ok
  • 移動到行尾
    $

單詞的移動,單詞的移動也用的比較多

  • 移動到下一個單詞的開頭,好比 i love you,它會移動到i l y這幾個字母上
    w
  • 移動到上一個單詞的開頭,好比 i love you,它會移動到y l i這幾個字母上
    b
  • 移動到下一個單詞的結尾,好比 i love you,它會移動到i e u這幾個字母上
    e

在一行代碼裏,能夠定位到某個字母,好比

上面的代碼裏,光標在行首,我想定位到node那個單詞,我能夠按兩下w,也能夠輸入2w,這二者的意思都是同樣的

可是,還有一種方法,就是直接定位到某個字母上,那就是

f字母
//好比在上面的例子中,我想移動到n,因此就輸入
fn

 

  • 移動匹配括號
    //你先把光標移動到括號上
    %
    //而後按住%就能夠匹配到對應的另外一半

     

      

3.經常使用的剪切粘貼複製命令

在這裏你也是能夠混着用,好比刪除一行代碼,你能夠用IDEA的快捷鍵也能夠用vim的dd,均可以,看你用哪一個爽罷了

  • 複製一行代碼
    yy
  • 複製n行代碼,在vim裏有個比較有趣的設定是你想一個操做執行多少遍,能夠在操做命令前加上數字,好比3yy,就是複製3行代碼
    nyy

    同理,你也能夠粘貼5次,命令就是5p
    有時複製多行時,因爲行數相差大,不容易算出來要複製多少行,這時就用視圖來幫忙,好比下邊的示例
    先輸入命令 v ,表明開啓能夠視模式選擇

    而後再輸入 272G 表明定位到272行

    而後再輸入y,就能夠快速的複製多行了。這可比你算出272-251+1快多了吧。

  • 複製多行還有一個也比較有趣的用法,好比我要將5到13行的代碼複製到58行下方
    :5,13 copy 58
    //或者也能夠複製單行,這樣的寫法前提都是光標不移動的,更方便
    :5
    copy 58
  • 複製多行(只複製) 其它命令可參考這種格式
    :24,36 y //複製24到36行而不作其它事   同理刪除剪切能夠是:24,36 d
  • 刪除命令
//刪除一行,雖然看起來是刪除,但其實說是剪切更準確,由於你輸入p就會把它粘貼出來了
dd
//刪除n行,同理也能夠參考多行復制同樣實現大範圍刪除
ndd
//刪除第n行
:nd

 

4. 替換和查找

這裏介紹一個命令:c命令,c的做用能夠理解爲:刪除->剪切->進入插入模式

因此我常常用到c命令的組合是 cw 或者 ce,顧名思義,就是刪除了一個單詞而後準備寫一個新的單詞,好比

這裏我想把node換成別的,輸入cw

這樣就進入插入模式,就能夠輸入新的單詞了

還有一種狀況是,當一串字符串,你想修改中間部分時,cw行不通,這時能夠利用前面學的f命令來組合,好比

我已經移動到l字母,若是我輸入cw,它會直接把loveyou都刪掉,而我只是想改掉love這個單詞,能夠輸入cfe

這時就會把love刪除並進入插入模式了。從這裏能夠看出vim的命令組合真的很強大,想要熟練就要多使用。

  •  查找命令 ,你能夠用IDEA的查找,也能夠用vim的查找,都隨便的
    /查找內容
    //而後輸入n就表明跳轉到下一個匹配的內容,輸入N跳轉到上一個匹配的內容
  • 替換
    :{做用範圍}s/{目標}/{替換}/{替換標誌}
    //例如:%s/love/hate/g會在全局範圍(%)查找love並替換爲hate,全部出現都會被替換(g)。

    做用範圍分爲  當前行 ,  全文  , 選區 三個範圍

    當前行
    :s/love/hate/g
    
    全文
    :%s/ove/hate/g
    
    選區
    在Visual模式下選擇好區域後,輸入 :  ,vim就會自動補全爲 :'<,'>
    :'<,>'s/love/hate/g

    也能夠指定行範圍,好比4到80行

    :4,80s/love/hate/g

    或者在當前行以及接下來的5行

    :.,+5s/love/hate/g

    甚至能根據需求尋找解決方案,好比我寫markdown時須要給選擇題的選項後面都加上兩個空格以便換行

    //光標在A選項的行
    :.,+3s/$/空格空格
    //上面的$表明末尾,而後後一個/的內容表明插入的內容
    //由此能夠得知,將$換成^就是在開頭插入內容了

    不過說實話,通常用得多的是 當前行 全文 指定行範圍 這三種,由於這三種已經能夠知足其他幾種方式了
    至於命令最後面的/g的意思是替換標誌,g表明全局(global)

    其他替換標識
    i表示大小寫不敏感查找,I表示大小寫敏感
    c表示須要確認
    當你替換標誌包含c時,每匹配一次單詞,都會彈出
    replace with 所更改的單詞 (y/n/a/q/l/^E/^Y)?

    按下表示替換,表示不替換,表示替換全部,表示退出查找模式, 表示替換當前位置並退出。與是光標移動快捷鍵

    因此你能夠輸入
    ynaql^E^Y
    :4,80s/love/hate/gci
    這句命令的意思是,在4到80行內,不分大小寫的查找love這個單詞,並每次找到後,讓你輸入確認命令以便於替不替換成hate這個單詞

5. 其它一些用到的命令

  • 撤銷(undo)
    u
  • 防撤銷,總之就是把撤銷的東西再放回去(redo)
    ctrl+r
  • 列操做,列操做在IDEA中也有,不過區別是IDEA的列操做主要是操做相同單詞的列,而vim的列操做是操做範圍內的全部列,好比

  IDEA的列操做,操做的是同一個部分

  vim的列操做,是你選中的區域內都會被更改

因此二者用哪個取決於你的需求了

//vim的列操做
1.光標定位到你想要操做的地方。
2.CTRL+v 進入Visual模式,選取操做範圍
3.SHIFT+i(I) 輸入要插入的內容。
4.ESC 按兩次,會在你選中的操做範圍內出現你插入的內容

目前我經常使用的vim命令就是以上的命令,這只是vim的冰山一角,然而卻能讓我脫離鼠標好多了,

因此可見vim的強大,固然,vim很強大,IDEA也很強大,因此二者結合就更強大了。

我也正在堅持使用vim,掌握百分百的vim命令是不可能的,vim的使用方式實在是太多了,

可是僅僅是我上面寫的那幾點命令就已經夠用好多了,我也將會不斷的學習更高級的vim操做,

總之就是要變成一個vim黨,衝鴨!鼠標什麼的扔掉好吧哈哈哈哈

相關文章
相關標籤/搜索