Vim函式自動補齊 包括庫函式

2021-06-20 03:16:02 字數 2836 閱讀 7725

我用的是ubantu 64位的.

主要是兩個東西,第乙個是ctags,omnicppcomplete.

網頁上有安裝說明,我是按照他說的,放到了~/.vim這。

生成ctags:

主要是庫函式和當前工程:

1.庫函式:

進入到這個目錄下執行:

ctags -r --sort=1 --c++-kinds=+p --fields=+ias --extra=+q --language-force=c++ -f cpp cpp_src
這是生成tags的命令,具體的選項的含義可以去網上搜一下,執行完成了之後~/.vim/tags的目錄下不僅有那個標頭檔案,還多了乙個名字為cpp的檔案,這就是我們剛才生成的標準c++庫的tags.

我們自己工程的cpp生成tags的方法:

我們在用vim編輯的時候最好,寫一段就生成一段.我們可以在vim配置檔案中進行設定,編輯**的時候按下某一些鍵就可以在我們工程目錄下生成tags。

這是我的vim配置:

set tags+=~/.vim/tags/cpp

set tags+=$myproject/tags

map :!ctags -r --c++-kinds=+pl --fields=+ias --extra=+q .

前面兩句就是tags的路徑,$myproject是我工程的環境變數。最後一句的意思就是我寫**的時候,在命令的模式按下ctrl+f12就會在我工程的路徑下生成tags。

然後就是設定omnicppcomplete.可以照著omnicppcomplete給的幫助文件進行設定,我的設定是

filetype plugin on

syntax enable

let omnicpp_maycompletedot = 1 " autocomplete with .

let omnicpp_maycompletearrow = 1 " autocomplete with ->

let omnicpp_maycompletescope = 1 " autocomplete with ::

let omnicpp_selectfirstitem = 2

let omnicpp_namespacesearch = 2

let omnicpp_showprototypeinabbr = 1

let omnicpp_globalscopesearch=1

let omnicpp_displaymode=1

let omnicpp_defaultnamespaces=["std"]

我在我的myproject下新建了乙個測試的.cpp檔案。先測試了一下我自己的類能不能補全。

已經自動補全了。

再來測試一下標準庫,用vector做為我的例子,如圖:

s是乙個vector,我輸入p就自動進行提示了。

現在只是有補全,還沒有函式引數,可以使用code_complete檢視鏈結

事實上,vim自己提供了很多的補全函式,可以到vim的目錄下,裡面有乙個autoload(我電腦是/usr/share/vim/vim74)裡面你會發現有很多complete函式對應不同的檔案型別,

要想使用這些函式,可以在你的vimrc中加入(以python為例,其他類似):autocmd filetype python set omnifunc=pythoncomplete#complete,其中omnifunc這個可以使用help omnifunc檢視使用方式,這裡使用了filetype,前提是filetype plugin on 開啟了,後面的函式名字,大家可以開啟autoload下的*.vim檔案檢視函式的名字。

自動新增括號:

開啟vim的配置檔案,加入以下**

:inoremap ( ()i

:inoremap ) =closepair(')'):inoremap o

:inoremap } =closepair('}'):inoremap [ i

:inoremap ] =closepair(']'):inoremap " ""i

:inoremap ' ''i

function! closepair(char)

if getline('.')[col('.') - 1] == a:char

return "\"

else

return a:char

endif

endfunction

就可以了。

在vim中呼叫g++,gcc,gdb什麼的。

map :call compilerun()func! compilerun()

exec "w"

exec "! g++ -o %< %"

exec "! ./%

endfunc

map :call rungdb()func! rungdb()

exec "w"

exec "!g++ -g -o %< %"

exec "!gdb ./%

endfunc

在命令模式下按下f5呼叫compilerun(),第一句是儲存檔案,第二句就是呼叫g++ ,%就是當前檔案,比如叫test.cpp,%《就是test。我在我電腦上是通過了的,沒有弄c的編譯選項,加上應該很easy。

vim外掛程式自動補齊 vim自動補全

1 單詞補全 ctrl n 當輸入完第乙個字母後,再按ctrl n,vim會自動出現下拉列表,且預設選中第乙個單詞 繼續按ctrl n可以上下選擇,但如果緩衝區沒有可菜單詞,那麼下拉列表不會有任何選項 ctrl p 功能同上,只是預設選中的是列表最後乙個單詞 vim新建乙個檔案,輸入下面的內容,測試...

vim外掛程式自動補齊 Linux 下定製vim

在linux下開發經常都會在命令列上操作,但是適應了ide環境都會吐槽難用,所以我們要定製化自己的vim。vim vimrc set nu 設定顯示行號 set backspace 2 能使用backspace回刪 syntax on 語法檢測 set ruler 顯示最後一行的狀態 set bg ...

vim外掛程式自動補齊 Vim 自動補全等外掛程式配置操作

vim的所有配置都是寫在.vimrc這個檔案裡的,我們先建立該檔案。cd touch vimrc vim vimrc 建立完成後,寫入一些基礎配置,引號內是注釋 去掉vi的一致性 set nocompatible 顯示行號 set number 隱藏滾動條 set guioptions r set ...