輕快的vim

轉載:http://www.cnblogs.com/nerxious/archive/2012/12/21/2827303.html

http://www.cnblogs.com/nerxious/archive/2012/12/21/2827774.html

http://www.cnblogs.com/nerxious/archive/2012/12/21/2828520.html


輕快的VIM(一):移動

斷斷續續的使用VIM也一年了,會的始終都是那麼幾個命令,效率極低

前幾個星期把Windows換成了Linux Mint,基本上也穩定了下來

就今晚,我已經下定決心開始新的VIM之旅,順便寫一系列的筆記和總結

還是那句話,我只是個新人,代碼也沒寫過多少行,但我一直在默默努力自學着

所以,還請老鳥們看看笑笑就行了,不要鄙視我,我很脆弱……

這是俺寫的《輕快的VIM系列》第一節,每一節都會不斷更新,加入更多技巧在裏面

VIM新手們加油,咱一起總結,一起努力練習……

基礎

字符移動

k            上移                k
h            左移            h        l
l            右移                j
j            下移

你也可以使用鍵盤上的方向鍵來移動,但這麼做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                 轉至文本末尾

如果你不知道當前是多少行的話就可以用Ctrl+g來查看

如果想轉到第800行,可以用800G

其實z命令也可以做到,並且把光標移動到第一行

tips:``反引號可以返回到使用G之前的位置



輕快的VIM(二):插入

上一節我們講到了VIM中的移動,既然已經能夠在屏幕和光標間遊刃有餘了

那麼,現在就來談談插入命令

不知道有多少VIM新手和我當年(去年)一樣,信誓旦旦的以爲只有i可以插入

唉,現在想想都覺得可笑,都是Windows下的編輯器用多了的結果

鼠標一點,媽媽再也不用擔心我的文本插入了……悲劇!

好了,讓我們拋棄過去吧,從現在起奮鬥,也許不算太晚

這是俺寫的《輕快的VIM系列》第二節,每一節都會不斷更新,加入更多技巧在裏面

VIM新手們加油,咱一起總結,一起努力練習……

 

基礎

字符位置插入

i            在光標之前插入
a            在光標之後追加

你看,其實剛開始用這兩個就足夠了,這就是最基礎的

爲什麼這麼說呢?因爲你可以依靠上一節中的移動命令來達到任意位置,然後再大力插入

不要忘了,VIM中最重要的技巧之一就是命令間的配合使用

 

進階

行位置插入

A            在一行的結尾處追加
I            在一行的開頭處插入
o            在光標所在位置的下一行打開新行插入
O            在光標所在位置的上一行打開新行插入

當然,如果你認爲先移動光標然後插入或追加慢了,那麼就應該用上面這種方法

它們是以行做單位

在這裏我還是需要提醒一下,命令前加數字代表執行次數

tips1:10I*<Esc>先輸入10,然後輸入i,接着輸入*號,最後按<Esc>

     這樣就可以在一行開頭輸入十個*

    

tips2:同樣,5o###<Esc>先輸入5,然後輸入o,接着輸入###,最後按<Esc>

     這樣就可以在下列5行中每一行開頭插入###

    

看,這樣一來,再需要輸入重複文本的時候就變得方便了對不對,你可以自己試着擴展思維……

但我依然會不厭其煩的提醒你,命令的組合也是最重要的技巧之一

 

合併行

有時候你也許會想合併兩行

    

J            合併兩行

    

你只需要把光標移動到首行,然後按3次J即可

讓我感覺奇怪的是,我直接使用3J卻只能合併兩行,4J才能合併3行

誰來告訴我爲什麼



輕快的VIM(三):刪除

這一節我們來看看刪除,刪除命令比較簡單,不過要使刪除更有效率

你需要配合我們第一節中講的各種移動命令

 

字符刪除

x            刪除光標所在處字符
X            刪除光標所在前字符

這裏沒有什麼可注意的地方,但需要說明一下的是

通常情況下,新手一旦着急便會按着x不動,從而達到刪除一大塊文本的目的

如果是頭幾天使用還好說,但從長久考慮,你還需要學習下面的刪除命令

 

單詞刪除

dw            刪除到下一個單詞開頭
de            刪除到本單詞末尾
dE            刪除到本單詞末尾包括標點在內
db            刪除到前一個單詞
dB            刪除到前一個單詞包括標點在內

很明顯,d是delete的縮寫,而上面的x則是老式的清除意思

這裏e表示往前刪除一個單詞,b表示往後刪除一個單詞,第一節中移動寫的很清楚

要注意的是e b會忽略標點,如don't,它們會把這當做三個單詞don、‘ 和 t 來刪除

而大寫的E B則不會

 

行刪除

dd            刪除一整行
D d$          刪除光標位置到本行結尾
d0            刪除光標位置到本行開頭

這三種用法是最好理解的

我一開始便說過,刪除命令需要配合移動命令才能發揮更多作用

你可以看看第一節內容,然後自己嘗試着刪除一節或一段內容等

tips:3dd代表刪除三行,聰明的你一定早就知道了




發佈了18 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章