1. 程式人生 > >在工程中最常用的 vim使用技巧

在工程中最常用的 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