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,進行實操。