文章目錄
斷斷續續的使用VIM也一年了,會的始終都是那麼幾個命令,效率極低
前幾個星期把Windows換成了Linux Mint,基本上也穩定了下來
就今晚,我已經下定決心開始新的VIM之旅,順便寫一系列的筆記和總結
還是那句話,我只是個新人,代碼也沒寫過多少行,但我一直在默默努力自學著
所以,還請老鳥們看看笑笑就行了,不要鄙視我,我很脆弱……
這是俺寫的《輕快的VIM系列》第一節,每一節都會不斷更新,加入更多技巧在裡面
VIM新手們加油,咱一起總結,一起努力練習……
基礎
字元移動
k 上移 kh 左移 h ll 右移 jj 下移
你也可以使用鍵盤上的方向鍵來移動,但這麼做h j k l的存在就失去了意義
之所以使用h j k l來控制方向,其主要目的是讓你的手不離開鍵盤中心,從而提高效率
tips:在命令前加上數字代表命令執行次數,如:5k,表示上移5行
單詞移動
W w 移動到下一個單詞開頭E e 移動到下一個單詞結尾B b 倒退到上一個單詞開頭
需要注意的是,E會忽略標點符號,如:I‘m,e會當成兩個單詞,E則不會
同樣,在命令前加上數字代表執行次數,如:2w,表示往下移動2個單詞
開頭我也許會多說幾遍,因為這個技巧很重要
整行移動
0 移動到行首$ 移動到行末+ 移動到下一行開頭- 移動到上一行開頭
這裡需要注意的是+ -和上面的j k有什麼不同之處
j k也是移動到上一行和下一行,但它們移動的是游標所在的位置
+ -不管你的游標在何處,總是移動到下一行或上一行的行首
進階
滾屏
Ctrl+f 往前滾動一整屏Ctrl+b 往後滾動一整屏Ctrl+d 往前滾動半屏Ctrl+u 往後滾動半屏Ctrl+e 往後滾動一行 Ctrl+y 往前滾動一行
看似比較多,但是可以根據鍵盤的位置來進行記憶,並且下面兩個也不常用
上面的滾屏都有一個共同點,就是會改變游標的位置,且螢幕也在改變
如果想讓游標維持在原來的位置實現滾屏請看下面
用z調整游標
z<Enter> 將游標所在行移動到螢幕頂端z. 將游標所在行移動到螢幕中間z- 將游標所在行移動到螢幕低端
tips:980z<Enter>可以將第980行移動到螢幕頂端
好吧,有時候你其實不想滾屏,你只想在當前螢幕中移動
請往下看
在螢幕中移動
H 移動到螢幕頂端的行M 移動到螢幕中央的行L 移動到螢幕底端的行nH 移動到螢幕頂端往下的第n行nL 移動到螢幕頂端往上的第n行
據我猜測這三個字母應該是HIgh、Middle和Low的縮寫,其實挺好記的
多練習幾遍就行了,需要注意的是:這裡只是游標的位置變化,和上面兩種不同
tips:你可以用+ -和j k實現同樣的位置變化,只不過要操作多次而已
+ -和j k的區別忘了嗎?往上看看吧
在當前行移動
^ 移動到當前行的第一個非空格處n| 移動到當前行的第n列
這裡的^與上面的0通常情況下表示的位置是一樣的
而n|,個人感覺還沒有h l方便,慢慢的數出行數還不如直接按著h l 左右移
根據文字區塊移動
所謂的文字區塊也就是句子、段落、小節等
( 移動到當前句子開頭) 移動到下一個句子開頭{ 移動到當前這一段開頭 } 移動到下一段開頭[[ 移動到當前這一節的開頭]] 移動到下一節的開頭
其中,VIM以? . !等符號來標記一個句子
空白行來標記一個段落
用節宏來標記一個節(節宏是什麼我還沒搞清楚)
根據行號來移動
Ctrl+g 顯示當前行資訊nG 轉至第n行G 轉至文本末尾
gg 移至文本開頭
如果你不知道當前是多少行的話就可以用Ctrl+g來查看
如果想轉到第800行,可以用800G
其實z命令也可以做到,並且把游標移動到第一行
tips:``反引號可以返回到使用G之前的位置