vim 100問

1. 如何使用vim打開一個文件後,位於100行的行首

]#  vim +100 FILENAME


2. 如何使vim打開一個文件後,位於第一個if處

]#  vim +/if FILENAME


3.  vim有哪幾種模式,分別有什麼作用

答:有編輯模式、插入模式、末行模式、可視模式

編輯模式即正常模式,也是vim打開文件的默認模式,在這個模式下可以執行跳轉、複製、刪除、替換等操作。

插入模式下可以輸入字符。像文檔編輯器一樣寫文檔

末行模式可以執行命令,比如高亮顯示、執行外部命令等

可視模式下,可以按需選取行或字符,然後進行其他操作。


4. 模式音的切換

A. 正常模式 -->  插入模式:可以使用i、I、a、A、o、O轉換到插入模式。

i:   在當前光標所在處插入字符。

I:   在當前光標所在行的行首插入字符

a:   在當前光標所在處後方插入字符。

A:    在當前光標所在行的行尾輸入

o: 在當前光標所在行的下方打開一個新行

O:     在當前光標所在行的上方打開一個新行。


B.  輸入模式-->編輯模式,   按ESC鍵


C.  編輯模式-->末行模式, 輸入:


D.  末行模式到編輯模式, 按ESC鍵盤


5.  如何保存並退出vim

A. 在正常模式下,輸入大寫的ZZ

B.  在末行模式下,輸入:wq

C. 在末行模式下,輸入:x


6. 如何將vim編輯的文件進行另存

:w /PATH/TO/SOMEFILE


7. 如何不保存退出

A.  如果文件沒有被修改,則:q不保存退出

B.:  如果修改了文件而不想保存,只退出,使用:q!強制退出不保存。


8. 如何使光標在字符間跳轉

A.   右手的hjkl,在正常模式下分別表示左、下、上、右。

B.   使用#COMMAND,表示可以向某個方向移動#次,比如2l表示向右移動2個字符。


9.  如何實現單詞間的跳轉

A. w,表示移動到下一個單詞的首部

B. e, 表示移動到當前或者後一個單詞的尾部

C. b,表示移動到當前或前一個單詞的首部

D.    #COMMAND,表示移動#個單詞。

需要注意的是:在正常模式下按e,如果處於非單詞尾部則移動到本單詞詞尾,如果本身是詞尾則移動到下一個單詞的詞尾; b亦然。

E.   單詞跳轉前還可以在前面增加動作。比如d2w表示刪除光標當前位置到下2個單詞的詞首。


10. 如何實現行首行尾的跳轉

A. ^, 表示跳轉到本行的第一個非空白字符

B. 0,表示跳轉到本行的絕對行首

C. $,表示跳轉到本行的行尾。


11.  行間跳轉

A. G表示跳轉到文件的最後一行

B. 1G或gg表示跳轉到文件首行

C. #G表示跳轉到第#行

D. #j表示向下跳轉#行

E. #k表示向上跳轉#行


12.  句間跳轉和段間跳轉

A. ),跳到下一句

B. (,跳到上一句

C. },跳到下一段

D. {,跳到上一段


13.  翻屏操作

A. Ctrl+f,向文件尾部翻一屏

B. Ctrl+b,向文件首部翻一屏

C. Ctrl+u,向文件首部翻半屏

D. Ctrl+d,向文件尾部翻半屏

E. Enter鍵,按行向後翻


14. 字符編輯(Nornal)

x,在正常模式下,表示刪除光標所在處字符。

#x,表示從光標所在處開始,刪除#個字符。

xp,交換光標所在處字符與其後面字符的位置。


15.  替換命令(Normal)

r: 替換光標所在處的字符。使用方法rCHAR,在當前光標位置輸入r,再輸入你想要替換成的字符可以將當前光標所在處字符替換成CHAR.

R:    進入替換模式,在正常模式下輸入R後,會進入替換模式,替換光標所在處的字符,而後光標右移,可以一直替換。


16. 刪除命令

d: d表示delete,可以結合光標跳轉命令,實現範圍的刪除

d$: 刪除當前光標所在處一直到行尾的字符

d^: 刪除當前光標所在處(不含)一直到行首的字符

de: 刪除當前光標所在處一直到本單詞或者下一個單詞的詞尾

dw: 刪除當前光標所在處一直到下個單詞的詞首(不含詞首)

db: 刪除當前光標所在處(不含當前光標)一直到本單詞或上一個單詞的詞首

#d[b|e|w]: 表示刪除命令可以搭配跳轉及數字一起使用,達到刪除多個單詞的效果

dd: 刪除整行

#dd: 刪除多行


17. 粘貼命令(p,put,paste)

A. p: 如果剪貼板內容不是整行,則在當前光標的後面插入剪貼板內容; 如果是整行,則在當前光標所在行的下一行粘貼。

B. P:  如果剪貼板內容不是整行,則在當前光標的前面插入剪貼板內容;如果是整行,則在當前光標所在行的上一行粘貼。


18. 複製命令(y,yank)

y,複製,工作行爲與d類似

y$: 複製當前光標所在位置一直到行尾的內容

y^: 複製當前光標所在位置(不含)一直到行首的非空白字符

y0: 複製當前光標所在位置(不含)一直到絕對行首

ye: 複製當前光標所在位置一直到詞尾

yw: 複製當前光村所在位置一直到下一個詞的詞首(不含詞首)

yb: 複製當前光標所在位置(不含)一直到本單詞或者上一個單詞的詞首

#y[e|w|b]: y可以結合數字以及Motion來操作,表示一次可以複製多個單詞

yy: 整行復制

#yy: 多行復制,從當前行算起,一起往下複製#行。


19. 改寫命令(change,c):

編輯模式跳轉到輸入模式,實現刪除操作。

c$: 刪除當前光標所在處一直到行尾的字符,並進入Insert模式

c^: 刪除當前光標(不含 )所在處一直到行首,並進入Insert模式

c0: 刪除當前光標(不含 )所在處一直到絕對行首,並進入Insert模式

cb: 刪除當前光標所在處(不含)一直到本單詞或上一個單詞的詞首,並進入Insert模式

ce: 刪除當前光標所在處一直到本單詞或者下一個單詞的詞尾,並進入Insert模式

cw: 刪除當前光標所在處一直到下個單詞的詞首(不含詞首),並進入Insert模式

#COMMAND: 可以跟數字聯動,表示可以改寫多個單詞或行

cc:刪除光標所在的行,並轉換爲Insert模式;

#cc:


20.  撤消操作

A.  u,undo,撤消前一次操作

B.  U,撤消針對本行的所有操作

C. Ctrl+r,撤消此前的撤消操作,也就是redo,經測試不能redo大寫U的撤消。

更多訓練,請訪問vimtutor,進行實操。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章