首先,確定你的系統裝了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 ...