用Vim模仿IDE的一些常用功能

2021-05-21 20:56:26 字數 2077 閱讀 7682

首先,確定你的系統裝了vim與ctags,沒裝的話請輸入以下兩個命令安裝(注意系統自帶vi不是vim)

sudo apt-get install vim

sudo apt-get install ctags

差不多就這些功能比較常用了吧,尤其是在做專案時。下面一一分析在vim下如何實現這些功能。

檢視某個函式的定義

確定安裝ctags後,進入專案目錄,輸入命令:ctags –r *-r表示遞迴建立,也就包括源**根目錄(當前目錄)下的所有子目錄。「*」表示所有檔案。這條命令會在當前目錄下產生乙個「tags」檔案,當使用者在當前目錄中執行vi時,會自動載入此tags檔案。

現在,當你在使用vim時,輸入:tag func便會跳轉到func函式定義的地方,或者游標移到func後按快捷鍵ctrl+]。ctrl+t返回上乙個位置

tag命令還支援正規表示式,在記不清楚具體函式名時可以加上「/」用正規表示式查詢,如tag /^***

另外還須注意:執行vim的時候,必須在「tags」檔案所在的目錄下執行。否則,執行vim的時候還要用「:settags=」命令設定「tags」檔案的路徑,這樣vim才能找到「tags」檔案。在完成編碼時,可以手工刪掉tags檔案

查詢某個變數的使用情況

使用vimgrep。比如我想查詢變數count的使用,在vim下輸入:vimgrep  ///  **/*.cpp。

內建make,一鍵即可build

在使用vim寫程式時,我們還需退出vim,再輸入make,其實可以使用vim內建的make,這樣就不用退出vim了,但是前提也是必須目錄下有makefile。

**高亮

vim自帶。

**自動補全

各種語法外掛程式,不再詳述,可google查閱

**縮排調整

進入visual模式,按「=」即可。

在整個專案中替換字元

要對多個檔案進行同樣的替換操作. 顯而易見的辦法是逐個編輯每個檔案, 敲入替換命令. 不過用巨集記錄和回放功能就快多了.

假設你有乙個目錄下有很多c++檔案, 都以".cpp"為副檔名. 現欲將所有名為"getresp"的函式更名為"getanswer".

請按以下步驟操作:

vim *.cpp(開啟所有c++檔案,現在進入的是第乙個)

qq(開始巨集記錄)

:%s///getanswer/ge(在第乙個檔案中執行替換操作)

:wnextq(停止巨集記錄)

@q(執行名為q的巨集.)

999@q(對其餘檔案執行同樣的操作)

注意,:%s///getanswer/ge中最後的e是必須得,用於忽略錯誤,否則如果某個檔案不包含getresp,那整個巨集就終止了。

多檔案編輯

vim file1 file2……個人感覺其實沒多大用,所以介紹乙個多視窗編輯命令吧。

:sp newfile即可在同一視窗開啟newfile檔案。

如果想編輯上乙個視窗,先按ctrl+w再按k

如果想編輯下乙個視窗,先按ctrl+w再按j

如果想將其中乙個檔案的內容全部複製到另乙個檔案中,則可輸入:r 被複製的檔名。這樣就實現了檔案的全部複製。

方便的切換到上次編輯的位置

目前我只知道按兩次 `鍵(tab鍵上面那個)

over,**請註明出處

VIM 一些常用技巧

多行增加指定字元 進入vi vim編輯器,按ctrl v進入視覺化模式 visual block 移動游標上移或者下移,選中多行的開頭 選擇完畢後,按大寫的的i鍵,此時下方會提示進入 insert 模式,輸入你要插入的注釋符,例如 最後按esc鍵,你就會發現多行 已經被注釋了 刪除多行 ctrl v...

vim的一些常用配置

set nu 顯示行數 set hlsearch 高亮度查詢 set backspace 2 可以使用退格鍵刪除任意字元,當為01時,僅可刪除輸入字元,不可刪除已存在的字元 set autoindent 自動縮排 set ruler 可顯示最後一行狀態 set showmode 左下角那一行的狀體 ...

vim常用的一些命令

vim的命令很多,很難記全,所以結合我平時的實踐,經常要用到的命令已經用紅體字標出。如果有何錯誤,歡迎指出。三種狀態 command 任何輸入都會作為編輯命令,而不會出現在螢幕上,任何輸入都引起立即反映 insert 任何輸入的資料都置於編輯暫存器,按esc,可跳回command方式 escape ...