vim基本操作鍵位

這篇文章,本來是寫給自己老婆的,老婆的第一份工作,是從事運維方面的工作,經過經常與她溝通她工作上的東西,我感覺vim對她來說非常之重要,然而她對vim的使用不是特別的熟悉,於是前段時間寫了這篇文章。發出來也許能幫助到其他朋友,所以就貼上來了。

vim 基本操作鍵位

光標移動

鍵位 操作功能
h 向左移動一個字符
k 向上移動一個字符
j 向下移動一個字符
l 向右移動一個字符,以上四個按鍵最好不要用方向鍵替代
$ 移動到行尾
0 移動到行首
% 移動到匹配的括號位置
gg 移動到文件第一行
G 移動到文件最後一行
10G 移動到文件第10行(10爲可以修改的任意行號)
w 移動到當前行下一個單詞的第一個字符
e 移動到當前行下一個單詞的最後一個字符
b 移動到當前行上一個單詞的第一個字符

剪切、複製、粘貼

鍵位 操作功能
dd 剪切光標所在行內容
D 剪切光標所在位置到該行結尾部分內容
yy 複製光標所在行內容
p 粘貼剪切板內容到光標所在行的下一行
P 粘貼剪切板內容到光標所在行的上一行
u 撤銷上一個操作
x 刪除光標當前位置字符

選取

鍵位 操作功能
v 從光標當前位置按字符選取
V 從光標當前所在行按字符選取

插入模式

鍵位 操作功能
i 從光標當前位置後邊插入
a 從光標當前位置前邊插入
o 從光標所在行下一行插入
O 從光標所在行上一行插入

搜索

鍵位 操作功能
/word 從光標當前位置向後全文搜索word這個單詞(word可以換成任意單詞)
?word 和上邊類似,唯一不同是向前搜索,這兩個命令都是循環搜索的,所以記住/word就行
fa 當前行從光標位置向後搜索,跳轉到第一個字符a(a可以修改爲任意字母,區分大小寫)
Fa 和上邊類似,唯一不同是向前搜索,這兩個命令只能搜索當前行,以上四個命令都可以輸入完畢後如果不是想要的位置,按;鍵可以跳轉到繼續搜索的下一個該字符

複合命令

記住以上命令就可以靈活用vim了,數了一下一共也沒有20個,而且我估計你已經記住了至少10個了。另外一些功能,是上述按鍵的複合,舉幾個例子:

  1. 可以用V命令配合光標移動命令,選中一段文本,然後剪切d或複製y,然後移動光標到另一個地方,粘貼p。
  2. 可以diw命令刪除光標當前位置的單詞。

其他很多命令,去看別人的帖子吧,我常用的就這些,其他的也不會了。

最後

一定不要擔心這些命令很多,記不住,不要擔心這些命令就像背單詞一樣困難,經常會忘記。我作爲vim的重度使用患者,告訴你,剛開始時你需要刻意的思考某個操作需要按哪幾個鍵,但大概使用十幾次這個命令後,就會形成肌肉記憶,以後想操作啥時,大腦會無意識的控制雙手去那麼按鍵盤,甚至都在你意識到要這樣操作之前,操作已經結束了。這就是很多人癡迷vim的原因,因爲操作快。

現在每當你問我某個操作要按哪些命令時,我都要思考一下,然而,如果我自己去操作,我就不用思考,就是這種感覺。

閒扯

說說我對vim的體會。上研究生時,當時在做ROS,需要頻繁的在linux系統上做開發,也就接觸了vim,接觸之後就迷上了這個工具,學習它的鍵位和擴展功能,尤其是花了很長時間配置自己的vimrc,我猜每一個入坑vim的朋友都有自己嘔心瀝血的vimrc吧。後來,我開始沉迷於研究如何將vim打造成強大的IDE,那時候,vim的各種擴展插件都研究過,智能補全、語法檢查、自動編譯、遠程部署都做過,當時我最好的夥伴愛上了JetBrain套件。沉迷了有半年,不知怎麼着,突然意識到自己不應該把時間浪費在研究工具上,而是應該用在真正該用的地方,於是,我才逐漸的從vim的坑裏邊爬出來。然而,現在我在做windows端和linux端的C/C++開發,也會開發django和flask,我使用VS、Pycharm、VS Code,這些工具上都安裝着vim插件,開發代碼也都用着hjkl,感覺非常方便,開發的思路行雲流水,這是vim帶給我的一種體驗。Mac上的終端裏依然部署着自己的vimrc,不過已經是好幾年前的東西了,大多數插件已經關掉,就vim原生的那點東西,纔是精華,把這些東西與現在IDE的高級功能結合起來,進一步提高軟件開發過程中的效率。
btw,人生中第一份工作,是做IDE開發,也算是造化弄人,當時研究怎麼把vim打造成強大IDE的時候,非常鄙視IDE。不過在研究的過程當中,也熟悉了IDE應該有的功能,這也爲我的第一份工作提供了知識基礎,讓我能更快的投入工作中去。這個道理是,現在做的每一件事,看似沒有意義,但在未來的某個時間點,也許就能用得到,所以,認真做好每一件小事。

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