天天看點

上古神器vim

vim快捷鍵

為了增加自己的工作效率,我不得不找一些快捷的方式來提高vim這塊的編輯速度。由于東西比較多,光vim指令的文檔就有三千多頁,在此奉上官方手冊的傳送門(中文的哦):

https://sourceforge.net/projects/vimcdoc/files/pdf-manual/reference-2.1.0.pdf/download

從文檔的長度上就可以知道vim的功能有多龐大了,包括一些基礎編輯部分、使用者手冊部分、進階編輯部分、接口部分、圖形化部分還有插件部分等等,反正東西多得夠每個人喝一壺了。本文就簡單地記錄一些編輯基礎,不管記不記得住,先記錄下來再說,以後複習定當收益匪淺,适合經常複習。

為了便于閱讀,本文的結構如下:

1.vim的幾種模式

2.普通模式下的快捷鍵

3.末行模式下的快捷鍵

1.vim的幾種模式

快捷鍵的用法也是要分場景的,是以我們首先需要搞清楚vim的幾種模式

普通模式:這個模式是初次進入文檔編輯時所處的狀态,vim filename即可進入普通模式

末行模式:在普通模式的基礎上,隻要你打出冒号即可進入末行模式

編輯模式:在普通模式的基礎上,輸入字母i,I,a,A,o,O都可以進入編輯模式

可視化模式:在普通模式的基礎上,輸入字母v可進入此模式

塊編輯模式:在普通模式的基礎上,輸入組合鍵ctrl+v即可進入此模式,此模式在進階用法中很有用

另外,所有的模式都可以通過按esc鍵來退出到普通模式,有的需要按兩次,有隻需要按1次。這個很重要

2.普通模式下的快捷鍵

方向鍵:h表示左移,l表示右移,k表示上移,j表示下移

數字結合方向鍵可以自由地在文本中遨遊,比如10j技術表示光标向下移動10行,10l表示光标向右移動10個字元

G :将光标移動至文檔的最後一行的行首,Ground(地面的意思)

gg : 将光标移動至文檔的第一行的行首

10gg :将光标移動至第10行的行首,這個數字可自定義

yy :複制目前行

2yy :複制連目前行在内往下的兩行,數字可自定義

dd :剪切目前行

3dd :剪切連目前行在内的往下的三行,數字可自定義

p : 從目前行往下粘貼已複制或者已剪切的内容

P :從目前行網上粘貼已複制或者已剪切的内容

翻屏

快捷鍵:

ctrl+f :向文末移動一頁

ctrl+d:向文末移動半頁

ctrl+b:向文本開頭移動一頁

ctrl+u:向文本開頭移動半頁

ctrl+e:向文末移動一行

ctrl+y:向文本開頭移動一行

10%:将光标移動至文本的10%處

zz:居中顯示光标所在行

組合快捷鍵

dw:剪切光标往後的1個字元串

d2w:剪切光标往後的2個字元串,特殊字元将作為分隔符

d2l:剪切光标右邊的2個字元

d2h:剪切光标左邊的2個字元

y2l:複制光标右邊的兩個字元

y2h:複制光标左邊的兩個字元

正規表達式組合鍵:(0,^,$)

d0:從光标到本行開頭全部剪切下來,^符号和0有相同的作用

y0:從光标到本行開頭全部複制下來,^符号和0有相同的作用

d$:從光标到本行結尾全部剪切下來

y$:從光标到本行結尾全部複制下來

文本對象:

aw:一個詞

as:一句。

ap:一段。

ab:一塊(包含在圓括号中的)

這樣y和d都可以和文本對象組合來實作對文本的操作

yas:複制光标所在的單詞或句子

das:剪切光标所在的單詞或句子

3.末行模式下的快捷鍵

:e! :重新加載本文檔,并且丢棄未儲存的改動,若已經使用w指令儲存過則不受此影響

:x :儲存退出,相當于wq指令

:Vex :垂直分割一個視窗

:Sex :水準分割一個視窗

/pattern :從光标所在處向文末查找此pattern

?pattern :從光标所在處向文檔開頭查找此pattern

n:向後查找下一個比對點

N:與n作用相反

特别地:

:vimgrep/pattern/ filename :查找本文檔的pattern,不會高亮顯示,但是會計算比對

替換指令(很實用):

:s/old/new :替換目前行的第一個比對點

:s/old/new/g :替換目前行的所有比對點

:%s/old/new/g :替換全文所有的比對點

:%s/^/something/g :在全文每行開頭加上something

:%s/$/something/g :在全文每行末尾加上something

:%s/old/new/gc :互動式地确認每次替換,y表示肯定,n表示否定,a表示全部肯定

:%s/old/new/gic :不區分大小寫地替換,并且互動式地确認每次替換