1. 程式人生 > >我經常用的一些vi快捷鍵

我經常用的一些vi快捷鍵

Linux下vi/vim的操作,當你不熟悉時,不會願意用他,一旦你習慣了,他的高效就無人能敵,用久了就會有種,相逢恨晚的感覺,這也是一部分人,習慣使用Mac而不是Windows的原因。

 

vi操作,可以說基本上,圍繞著鍵盤的每一個鍵位,都有他的意義。

 

首先說一些我常用的,

(1) 開啟vi如果未輸入i,則複製-貼上字元,會導致前面少幾個字元。

例如,

> vi test.txt

this is a test file.

此時複製"this is a test file"這幾個字元,在檔案開始處,按"shift“和"insert",檔案test.txt顯示,可以看出,this截了,

s is a test file.this is a test file.

如果輸入i,再次執行"shift“和"insert",這次就正常了,就是說如果需要複製-貼上,保險起見,就要輸入i,再執行貼上操作,

this is a test file.this is a test file.

 

(2) vi編輯完成,兩種退出模式。

儲存退出,可以輸入ZZ。

不儲存退出,可以輸入ZQ。

為了提高效率,可以右手shift,左手Z/Q,一氣呵成。

 

(3) 批量編輯

如果需要為檔案每行,頭部加字串“sqlplus“,可以執行

:%s/^/sqlplus

如果要將下列文字中,第一個a字元變為b,

this is a test file.this is a test file.

可以執行,

:%[email protected]@b

如果要將所有a,變為b,可以執行,

:%[email protected]@[email protected]

如果需要統計,a字元出現的次數,可以執行,

:%s/a//gn

提示,

this is a test file.this is a test file.

2 matches on 1 line

同樣支援字串,統計test出現的次數,可以執行,

:%s/test//gn

提示,

this is a test file.this is a test file.

2 matches on 1 line

 

(4) 查詢定位字元

一行文字,若要找出“a”字元的位置,

this is a test file.this is a test file.

可以執行,

fa

其中f表示find,a表示要檢索的字元資訊,同理要找b,就可以用fb,

fb

除了字元,像“(”這種也支援,

f(

 

當然,vi的快捷操作方法,上面只是些皮毛,網上有一些vi操作圖表,也許有人看過,下面彙總了一下,引自盧大俠(盧鈞軼,cenalulu)的部落格(http://cenalulu.github.io/linux/all-vim-cheatsheat/),重要的不是記住所有鍵位,而是根據自己的實際需求,找出自己需要的,熟練掌握,變為自己的技能,這才是最重要的能力。

 

經典版本(http://cenalulu.github.io/images/linux/vim_cheatsheet/classic.gif):

 

入門版本(http://cenalulu.github.io/images/linux/vim_cheatsheet/entry.png):

 

進階版本(http://cenalulu.github.io/images/linux/vim_cheatsheet/advanced.png):


增強版本(http://cenalulu.github.io/images/linux/vim_cheatsheet/morden.png):

 

文字版本(http://cenalulu.github.io/images/linux/vim_cheatsheet/text.png):

(http://cenalulu.github.io/images/linux/vim_cheatsheet/text2.png)