在工程中最常用的 vim使用技巧
本文記錄vim編輯器的程式碼編輯常用快捷鍵與在vim中如何進行函式跳轉等快捷操作。可以檢視右側目錄快速找到你所需要的內容。
主要學習以下內容:
- .vimrc配置檔案
- cscope-indexer 檔案索引元件
- 使用上述兩個元件更加快捷的編輯程式碼
1、vim編輯常用快捷鍵
當我們使用vim開啟一個檔案的時候,剛進到檔案,是處於命令列模式(就是無法編輯程式碼)。
當按下鍵盤上的 i 或者 a 都可以進入編輯模式。進入編輯模式就可以移動游標進行程式碼編輯。但是vim中的編輯模式,很不好編輯,比如我們想要複製一行內容到另一行,還要用滑鼠右鍵進行復制貼上。這很不方便。但是不是在編輯模式下,也就是去命令列模式下,可以有一些快捷鍵來滿足我們的一些快捷的需求。
在編輯模式下按下鍵盤上的 Esc 按鍵,進入到命令列模式。在命令列模式下,有如下快捷鍵(注意一定是命令列模式):
- 拷貝某一行的內容:yy (讓滑鼠的游標在某一行停留,連續按下鍵盤上的 y 兩次,即可複製該行的內容)
- 剪下某一行的內容:dd (讓滑鼠的游標在某一行停留,連續按下鍵盤上的 d 兩次,即可剪下該行的內容,剪下後該行的內容消失,相當於刪除)
- 貼上:p (當執行完yy或者dd後,將游標移動到你想貼上的位置,按下p,即可貼上內容)
- 拷貝多行的內容: 按下v + 游標移動選中一些行,選好後鬆開v,然後按下y,即可拷貝選中的行的內容。
- 剪下多行的內容:按下v + 游標移動選中一些行,選好後鬆開v,然後按下d,即可剪下選中的行的內容。剪下後,選中的內容消失,相當於刪除。
- 列模式:ctrl + v 後,移動游標可以選擇列的內容
- 刪除:dd可以看成是刪除單獨行,v + 游標移動選中內容再按下d可以看成是刪除多行內容。
- 顯示行號:進入命令列模式下,按下
Shift + :
,然後輸入set nu
- 去掉行號:進入命令列模式下,按下
Shift + :
,然後輸入set nonu
2、檔案索引工具( cscope-indexer)
使用這個cscope-indexer工具,可以使用宋老師提供的 .vimrc
配置檔案(點選下載 .vimrc 配置檔案點選下載),或者你自己去網上搜一下看如何配置。下載好之後將它拷貝到你的Linux系統的home目下(~ 目錄下),替換你原來的配置檔案。
然後還需要下載cscope-indexer工具:$ sudo apt install cscope
2.1 利用cscope-indexer建立原始碼檔案索引關係
在一些大工程中,如果你想去檢視函式的定義位置,或者找到呼叫該函式的位置,在vim中,使用cscope-indexer工具比較好用。
比如我想檢視我的核心原始碼,我就需要先在核心原始碼的目錄下,輸入命令:
$ cscope-indexer -r
這個命令就讓核心目的所有檔案都建立了一個索引。
2.2 在vim中快速進入到函式定義的位置
然後我們用vim開啟一個檔案。進入命令列模式。
輸入Shift + :
進入可以手動輸入命令的狀態。然後輸入:
回車!
就可以找到start_kernel函式的定義位置。可能有多處定義位置,輸入數字選擇進入到哪一個定義的函式位置。
或者使用如下快捷鍵也可以達到上述的效果:
ctrl + \ 擡起來後按下g 前提是游標在start_kernel處放著
2.3 在vim中快速找到函式被呼叫的位置
輸入Shift + :
進入可以手動輸入命令的狀態。然後輸入:
或者使用如下快捷鍵也可以達到上述的效果:
ctrl + \ 擡起來後按下 c ,前提是游標在該函式處
2.4 在vim中快速進入到檔案開頭或者結尾
游標在某一處,如何快速移動到檔案的末尾:命令列模式下,大寫開啟,按下G。
游標在某一處,如何快速移動到檔案的開頭:命令列模式下,小寫開啟,按下gg。
2.5 在vim中快速替換字串
如何替換某一個檔案中的一個字串?
進入命令列模式,輸入Shift + :
進入可以手動輸入命令的狀態。然後輸入:
其中ostr是想要替換掉的字串,nstr是新字串。
或者使用如下快捷鍵也可以達到上述的效果:
ctrl + \ 擡起來後按下r 然後將ostr換成原始字串,nstr換成新字串
3、總結
學會使用vim。
本文來自宋寶華vim課程。尊重宋老師,但是他手下的人一般般。
學習探討加個人:
qq:1126137994
微信:liu1126137994