vim常用按鍵


最近這段時間堅持了vim的使用,我在我的IDEA里面加了一個插件,可以支持vim。

然后不管是IDEA還是Vim都有自己的按鍵,而且都很好用,所以我就總結下在IDEA下的vim使用命令

當然,都是原生命令,我總結的是我自己經常用到的,我也是剛開始使用,還不太熟練。

記載在博客以后就不用去搜索去查了。

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

本文關於Vim的幾個模式就不介紹了,如果有讀者想借鑒我的習慣,肯定是有vim基礎的。

我所介紹的都是根據我實際情況所需要用的,不會介紹完全部。

1. 常用的插入命令

其實這幾個都不是必須的,但也是要會用的,因為你大可以在正常情況下移動到想要編輯的地方,然后再打開VIM編輯器。

像在光標下插入新行,你用IDEA的shift+Enter也可以,所以我想說的是IDEA和VIM的東西你可以混着用,對自己效率有提升就可以了

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)?

    按下y表示替換,n表示不替換,a表示替換所有,q表示退出查找模式, l表示替換當前位置並退出。^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 按兩次,會在你選中的操作范圍內出現你插入的內容
  • 打開歷史文件
    在idea里面的話,打開歷史文件可以不用vim的功能。
    但是我用gvim有時編輯了文件,想重新編輯,還得重新去找,用這個歷史文件的功能就好多了
    ctrl+o

     

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

所以可見vim的強大,當然,vim很強大,IDEA也很強大,所以兩者結合就更強大了。

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM