歡迎光臨
每天分享高質量文章

如何用Vim提高開發效率

來自:隨手記技術團隊(微訊號:sui-tech)

背景

雖然筆者是Android開發工程師,但也接觸過各種IDE(不限於Android開發)。不同的IDE往往都有不同的快捷鍵,我們總不能對每種IDE都進行配置吧。實際上,現在大部分IDE都能透過外掛的形式支援Vim了。所以,只需要掌握Vim的基本使用,在支援Vim的IDE都能很快上手,熟悉的操作,熟悉的手感。

Vim樣式

Vim可分為3種樣式,分別是Normal樣式、Visual樣式和Insert樣式。以下的基本操作都是在Normal樣式進行。三種樣式的區別這裡不詳解了,Bing搜尋有很多相關的基礎教程。
三者的關係可用下圖簡單描述

基本操作

游標移動

註意區分字母大小寫

上下左右

直接看錶格,簡單易懂。一開始會有點彆扭,但是熟悉之後你會愛上他的。

k(上)
h (左) l (右)
j (下)

單詞間定位

鍵位

如果是大寫,則單詞允許包含標點
w(向前跳到單詞詞首)
e(向前跳到單詞詞尾)
b(向後跳到單詞詞首)

行內定位

鍵位

$(定位到行尾)
0(定位到行首)
^(定位到行首,忽略空格)
f 正向搜尋ch字元,ch如果是字母則區分大小寫
F 反向搜尋ch字元,ch如果是字母則區分大小寫

塊定位

鍵位

{(跳到上一個程式碼塊)
}(跳到下一個程式碼塊)
%(定位到另一個匹配的括號)

頁面定位

鍵位

gg(定位到頁面的第一行)
G(定位到頁面的最後一行)
H(定位到當前頁面的頂部,High首字母大寫)
M(定位到當前頁面的中部,Middle首字母大寫)
L(定位到當前頁面的底部,Low首字母大寫)

nG或ngg(定位到指定行,n表示行數,需大於0,
如果大於最大行數,則會直接跳轉到頁面最後一行)

m和’(這是一對很強大的命令,可標記一個位置,然後在同頁面快速定位到該標誌。m表示mark,a是一個字母,可以是26字母的其中一個,’是單引號,後面跟上前面標記的字母)

螢幕滾動

整屏滾動

鍵位

Ctrl + f (向下滾動一屏內容,Foward首字母小寫)
Ctrl + b (向上滾動一屏內容,Backward首字母小寫)

半屏滾動

鍵位

Ctrl + d(向下滾動半屏內容,Down首字母小寫)
Ctrl + u(向上滾動半屏內容,Up首字母小寫)

行滾動

鍵位

Ctrl + e(向下滾動一行內容) 
Ctrl + y(向上滾動一行內容)

編輯樣式

插入

鍵位

i(在游標處插入,insert首字母小寫)
I(在行首插入,insert首字母大寫)
a(在游標處後一個字元插入,append首字母小寫)
A(在行尾插入,append首字母大寫)
o(在上一行插入)
O(在下一行插入)
cc/S(清除當前行併進入插入樣式)
s(清除當前字元併進入插入樣式)

恩,這個很簡單,就不貼圖了。

查詢

鍵位

/pattern(正向查詢)
?pattern(反向查詢)
n(查詢下一個)
N(查詢上一個)
*(當游標定位在某個單詞時,查詢下一個該單詞)
#(當游標定位在某個單詞時,查詢上一個該單詞)

替換

鍵位

:%s/old/new/g(全域性替換old為new)
:s/old/new/g(替換當前行old為new)

註意,替換操作僅在當前頁面生效,使用該替換操作需謹慎。
建議使用IDE自帶的重新命名操作,可以將對應的取用也一起重新命名!

剪下、複製、貼上

鍵位

dd(剪下當前行的內容)
D(剪下游標後到行尾的內容)
yy/Y(複製當前行的內容)
p(貼上到游標後)
P(貼上到游標前)

撤銷

鍵位

u(撤銷上一步,IDE一般都是Cmd + Z)

這個簡單,也不貼圖了。

組合操作

組合操作可以看作是op+i/a+scope公式的應用,解釋一下這個公式,op就是我們前面提到的插入(c)、剪下(d)、複製(y)以及還未提到的選擇(v),i表示scope範圍內,a表示包含scope標簽,scope就是操作的範圍了。這樣講比較抽象,下麵舉例幾個常用組合。

選擇文字

鍵位

以下如果將i換成a,則會將符號也包含進去
vib(選中小括號內的內容)
viB(選中大括號內的內容)
vi”(選中雙引號內的內容)
vi’(選中單引號內的內容)
vi

同理,將選擇操作(v)替換成插入(c)、剪下(d)或者複製(y),也能實現類似的效果。

神奇操作

IDE支援跳轉到變數(方法)的定義處或者呼叫處,Vim也支援,而且也很方便。只需要將游標定位到方法名,然後輸入gd即可。配合Android Studio的Navigate Back,可以十分方便地檢視方法的呼叫。

Navigate Back設定

碎語

當掌握了Vim,以後如果使用了新的IDE或者開發環境,只要支援Vim,我們就能很快的熟悉開發環境。當然,很多IDE提供了更完善的快捷鍵,筆者的觀點是,Vim和IDE配合著使用,互補缺點。

參考連結

  • https://jasonliao.me/posts/2016-08-09-you-dont-know-vim.html

  • https://vim.rtorr.com/lang/zh_cn/


●本文編號408,以後想閱讀這篇文章直接輸入408即可

●輸入m獲取到文章目錄

推薦↓↓↓

C/C++程式設計

更多推薦18個技術類公眾微信

涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

贊(0)

分享創造快樂