最近這段時間堅持了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. 經常使用的定位命令
:set nu
//取消行號
:set nonu
行的移動,關於行的移動仍是會用到,通常像移動到第n行,或者視圖選擇時想作全選操做
gg
G
nG
0
//其實你也能夠用Home鍵 因此說我買的鍵盤至少是87鍵的,不是說非要什麼都用vim的命令,只要能達到目的都ok
$
單詞的移動,單詞的移動也用的比較多
w
b
e
在一行代碼裏,能夠定位到某個字母,好比
上面的代碼裏,光標在行首,我想定位到node那個單詞,我能夠按兩下w,也能夠輸入2w,這二者的意思都是同樣的
可是,還有一種方法,就是直接定位到某個字母上,那就是
f字母 //好比在上面的例子中,我想移動到n,因此就輸入 fn
//你先把光標移動到括號上 % //而後按住%就能夠匹配到對應的另外一半
3.經常使用的剪切粘貼複製命令
在這裏你也是能夠混着用,好比刪除一行代碼,你能夠用IDEA的快捷鍵也能夠用vim的dd,均可以,看你用哪一個爽罷了
yy
nyy
同理,你也能夠粘貼5次,命令就是5p
有時複製多行時,因爲行數相差大,不容易算出來要複製多少行,這時就用視圖來幫忙,好比下邊的示例
先輸入命令 v ,表明開啓能夠視模式選擇
而後再輸入 272G 表明定位到272行
而後再輸入y,就能夠快速的複製多行了。這可比你算出272-251+1快多了吧。
: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的命令組合真的很強大,想要熟練就要多使用。
/查找內容 //而後輸入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. 其它一些用到的命令
u
ctrl+r
IDEA的列操做,操做的是同一個部分
vim的列操做,是你選中的區域內都會被更改
因此二者用哪個取決於你的需求了
//vim的列操做 1.光標定位到你想要操做的地方。 2.CTRL+v 進入Visual模式,選取操做範圍 3.SHIFT+i(I) 輸入要插入的內容。 4.ESC 按兩次,會在你選中的操做範圍內出現你插入的內容
目前我經常使用的vim命令就是以上的命令,這只是vim的冰山一角,然而卻能讓我脫離鼠標好多了,
因此可見vim的強大,固然,vim很強大,IDEA也很強大,因此二者結合就更強大了。
我也正在堅持使用vim,掌握百分百的vim命令是不可能的,vim的使用方式實在是太多了,
可是僅僅是我上面寫的那幾點命令就已經夠用好多了,我也將會不斷的學習更高級的vim操做,
總之就是要變成一個vim黨,衝鴨!鼠標什麼的扔掉好吧哈哈哈哈