vim c語言開發配置

vim c 開發配置

連接:http://blog.163.com/023_dns/blog/static/1187273662012125112426472/linux

介紹

Vim強大的功能,其來源基本上就兩個地方:Vim插件以及Vim配置文件。 Vim自己的系統配置文件夾是在/usr/share/vim/和/etc/vim/兩個文件夾下。通常狀況下,咱們不會去改變這兩個文件夾下的配置文件,而是在用戶文件夾/home/user下創建本身的配置文件。進入用戶文件夾以後,新建一個名叫.vimrc的文件程序員

基本配置

在.vimrc裏面加上如下的代碼:編程

set nocompatible
if has("syntax")
    syntax on
endif
    colorscheme ron
filetype on
filetype plugin on
set background=dark
if has("autocmd")
    au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
    filetype plugin indent on
endif
set autowrite        " 自動把內容寫回文件: 若是文件被修改過,在每一個 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令時進行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令轉到別的文件時亦然。
set autoindent        " 設置自動對齊(縮進):即每行的縮進值與上一行相等;使用 noautoindent 取消設置
set tabstop=4        " 設置製表符(tab鍵)的寬度
set softtabstop=4     " 設置軟製表符的寬度    
set shiftwidth=4    " (自動) 縮進使用的4個空格
set cindent            " 使用 C/C++ 語言的自動縮進方式
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s     "設置C/C++語言的具體縮進方式
set showmatch        " 設置匹配模式,顯示匹配的括號
set linebreak        " 整詞換行
set whichwrap=b,s,<,>,[,] " 光標從行首和行末時能夠跳到另外一行去
set mouse=a            " Enable mouse usage (all modes)    "使用鼠標
set number            " Enable line number    "顯示行號
set history=50        " set command history to 50    "歷史記錄50條
set laststatus=2 " 總顯示最後一個窗口的狀態行;設爲1則窗口數多於一個的時候顯示最後一個窗口的狀態行;0不顯示最後一個窗口的狀態行
set ruler            " 標尺,用於顯示光標位置的行號和列號,逗號分隔。每一個窗口都有本身的標尺。若是窗口有狀態行,標尺在那裏顯示。不然,它顯示在屏幕的最後一行上。
set showcmd            " 命令行顯示輸入的命令
set showmode        " 命令行顯示vim當前模式
set incsearch        " 輸入字符串就顯示匹配點
set hlsearch

而後新建的文件就會有一些規則了(換行等)vim

ctags安裝

ctags能夠創建源碼樹的標籤索引(標籤就是一個標識符被定義的地方,如函數定義),使程序員在編程時能迅速定位函數、變量、宏定義等位置去查看原形函數

yum install ctags

ctags須要創建源碼索引才能使用,所以咱們在咱們編寫的源碼下面:this

ctags -R *

創建索引。 在.vimrc文件中加入:spa

"--ctags setting--
" 按下F5從新生成tag文件,並更新taglist
set tags=tags
set tags+=./tags "add current directory's generated tags file
set tags+=~/arm/linux-2.6.24.7/tags "add new tags file(剛剛生成tags的路徑,在ctags -R 生成tags文件後,不要將tags移動到別的目錄,不然ctrl+]時,會提示找不到源碼文件)

set tags+=./tags表示在當前工做目錄下搜索tags文件 set tags+=~/arm/linux-2.6.24.7/tags表示在搜尋tags文件的時候,也要搜尋~/arm/linux-2.6.24.7/文件夾下的tags文件。 而後保存並退出vi。這樣,你就能夠用vim在任意地方查看有關Linux的函數原形。 tag命令用法: Ctrl+]  跳到當前光標下單詞的標籤 Ctrl+O  返回上一個標籤 Ctrl+T  返回上一個標籤 :tag TagName 跳到TagName標籤 以上命令是在當前窗口顯示標籤,當前窗口的文件替代爲包標籤的文件,當前窗口光標跳到標籤位置。若是不但願在當前窗口顯示標籤,可使用如下命令: :stag TagName 新窗口顯示TagName標籤,光標跳到標籤處 Ctrl+W + ]  新窗口顯示當前光標下單詞的標籤,光標跳到標籤處 當一個標籤有多個匹配項時(函數 (或類中的方法) 被屢次定義),":tags" 命令會跳轉到第一處。若是在當前文件中存在匹配,那它將會被首先使用。 能夠用這些命令在各匹配的標籤間移動: :tfirst    到第一個匹配 :[count]tprevious 向前 [count] 個匹配 :[count]tnext  向後 [count] 個匹配 :tlast    到最後一個匹配 或者使用如下命令選擇要跳轉到哪個 :tselect TagName 輸入以上命令後,vim會爲你展現一個選擇列表。而後你能夠輸入要跳轉到的匹配代號 (在第一列)。其它列的信息可讓你知道標籤在何處被定義過。 如下命令將在預覽窗口顯示標籤 :ptag TagName 預覽窗口顯示TagName標籤,光標跳到標籤處 Ctrl+W + }  預覽窗口顯示當前光標下單詞的標籤,光標跳到標籤處 :pclose   關閉預覽窗口 :pedit file.h 在預覽窗口中編輯文件file.h(在編輯頭文件時頗有用) :psearch atoi 查找當前文件和任何包含文件中的單詞並在預覽窗口中顯示匹配,在使用沒有標籤文件的庫函數時十分有用。   最簡單的使用方法舉例 用vi在任意目錄寫一個Test.c文件,內容以下:prototype

int main(void)
    {
            printf("Hello World!\n");
            return 0;
    }

寫好後末行模式輸入w保存好(不要退出vi),按Esc回到指令模式,把光標停留在printf上 而後按 Ctrl + ],vi會自動跳到Linux系統函數printf()處,這時咱們能查看printf()的原形,查看完了,按Ctrl+o(回到上一個標籤) 就回到原來的地方 插件

vim自動補全——OmniCppComplete

vim的自動補全功能可經過其插件OmniCppComplete實現。 安裝OmniCppComplete; 配置OmniCppComplete; 在vim配置文件/home/user/.vimrc中加入以下的配置:命令行

"-- omnicppcomplete setting --
imap <F3> <C-X><C-O>   " 按下F3自動補全代碼,注意該映射語句後不能有其餘字符,包括tab;不然按下F3會自動補全一些亂碼
imap <F2> <C-X><C-I>   " 按下F2根據頭文件內關鍵字補全
set completeopt=menu,menuone " 關掉智能補全時的預覽窗口
let OmniCpp_MayCompleteDot = 1 " autocomplete with .
let OmniCpp_MayCompleteArrow = 1 " autocomplete with ->
let OmniCpp_MayCompleteScope = 1 " autocomplete with ::
let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert)
let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files
let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window
let OmniCpp_GlobalScopeSearch=1 " enable the global scope search
let OmniCpp_DisplayMode=1 " Class scope completion mode: always show all members
"let OmniCpp_DefaultNamespaces=["std"]
let OmniCpp_ShowScopeInAbbr=1 " show scope in abbreviation and remove the last column
let OmniCpp_ShowAccess=1
相關文章
相關標籤/搜索