vim初學配置筆記 vimrc

來源:互聯網
上載者:User
(在vimtuor後繼續的學習性況筆記   下一步完整的照著協助文檔看練習一遍,並整合gdb進去)

初學VIM的vimrc配置情況 主要是拿來用c/c++的
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"中文
set helplang=cn

"utf-8編碼
set encoding=utf-8

"文法高亮
syntax enable
syntax on
colorscheme desert

"設定(軟)定位字元寬度為4:
set tabstop=4
set softtabstop=4

"設定縮排的空格數為4
set shiftwidth=4

"設定自動縮排:即每行的縮排值與上一行相等;使用 noautoindent 取消設定:
set autoindent

"設定使用 C/C++ 語言的自動縮排方式:
set cindent

"設定C/C++語言的具體縮排方式(以我的windows風格為例):
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s

"如果想在左側顯示文本的行號,可以用以下語句:
set nu

"最後,如果沒有下列語句,就加上吧:
if &term=="xterm"
set t_Co=8
set t_Sb=^[[4%dm
set t_Sf=^[[3%dm
endif

"taglist 外掛程式Ctags 外掛程式: TagList
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1

"檔案瀏覽器和視窗管理器 -- 外掛程式: WinManager
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>

" tags
"set tags=./tags

"是否使用 quickfix 視窗來顯示 cscope 結果
set cscopequickfix=s-,c-,d-,i-,t-,e-

"映射cscope鍵盤
nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <C-_>i :cs find i <C-R>=expand("<cfile>")<CR><CR>
nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>

"快速探索和操作Buffer -- 外掛程式: MiniBufExplorer
                   "以下的兩個功能需要在~/.vimrc中增加:
let g:miniBufExplMapCTabSwitchBufs = 1"<C-Tab>     向前迴圈切換到每個buffer上,並在但前視窗開啟
                                                               "<C-S-Tab>     向後迴圈切換到每個buffer上,並在但前視窗開啟
                   "如果在~/.vimrc中設定了下面這句:
let g:miniBufExplMapWindowNavVim = 1"則可以用<C-h,j,k,l>切換到上下左右的視窗中去,就像:
                                                                "C-w,h j k l    向"左,下,上,右"切換視窗.
                   "在~/.vimrc中設定:
let g:miniBufExplMapWindowNavArrows = 1"是用<C-方向鍵>切換到上下左右視窗中去

"c/h檔案間相互切換 -- 外掛程式: A
nnoremap <silent> <F12> :A<CR>"意思是按F12時在一個新的buffer中開啟c\h檔案,

"在工程中尋找 -- 外掛程式: Grep
nnoremap <silent> <F3> :Grep<CR>"在想查的詞上按F3

"c智能補全
filetype plugin indent on"開啟檔案類型檢測, 加了這句才可以用智能補全
set completeopt=longest,menu"關掉智能補全時的預覽視窗

"加速你的補全 -- 外掛程式: SuperTab
let g:SuperTabRetainCompletionType=2"設定按下<Tab>後預設的補全方式
let g:SuperTabDefaultCompletionType="<C-X><C-O>"" 2 - 記住上次的補全方式,直到按ESC退出插入模式為止

"關閉了VI相容模式,並允許進行檔案類型檢測 外掛程式OmniCppComplete:
"c++補全ctag命令    ctags -R --c++-kinds=+p --fields=+iaS --extra=+q src
set nocp
filetype plugin on

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
更炫的文法高亮:
你可能會發現很多東西沒有高亮起來, 比如運算子號, 各種括弧, 函數名, 自訂類型等, 但是看上面的圖片, 我的運算子號和函數名都加亮了^_^, 想知道為什麼嗎? 哇哈哈哈哈.... 讓我來教你吧 ...


要的思路是建立一個文法檔案, 在檔案中定義你要高亮的東東, 想高亮什麼就高亮什麼, 用vim就是這麼自信.
所謂的文法檔案就是vim用來高亮各種源檔案的一個指令碼, vim靠這個指令碼的描述來使檔案中的不同文本顯示不同的顏色,
比如C語言的文法檔案放在類似於這樣的一個路徑中:
/usr/share/vim/vim64/syntax/c.vim
其他語言的文法檔案也可以在這個路徑中找到, 你的也許不在這個路徑中, 不管它, 在你自己的HOME下建立一個文法檔案, 建立一個空檔案:
~/.vim/syntax/c.vim
在其中加入

"========================================================
" Highlight All Function
"========================================================
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi cFunction gui=NONE guifg=#B5A1FF

"========================================================
" Highlight All Math Operator
"========================================================
" C math operators
syn match cMathOperator display "[-+\*/%=]"
" C pointer operators
syn match cPointerOperator display "->\|\."
" C logical operators - boolean results
syn match cLogicalOperator display "[!<>]=\="
syn match cLogicalOperator display "=="
" C bit operators
syn match cBinaryOperator display "\(&\||\|\^\|<<\|>>\)=\="
syn match cBinaryOperator display "\~"
syn match cBinaryOperatorError display "\~="
" More C logical operators - highlight in preference to binary
syn match cLogicalOperator display "&&\|||"
syn match cLogicalOperatorError display "\(&&\|||\)="

" Math Operator
hi cMathOperator guifg=#3EFFE2
hi cPointerOperator guifg=#3EFFE2
hi cLogicalOperator guifg=#3EFFE2
hi cBinaryOperator guifg=#3EFFE2
hi cBinaryOperatorError guifg=#3EFFE2
hi cLogicalOperator guifg=#3EFFE2
hi cLogicalOperatorError guifg=#3EFFE2

再開啟你的C檔案看看, 是不是又明亮了許多. 還有一個壓箱底的要告訴你, 如果你自己增加了一個類型或者結構之類的, 怎麼讓它也象"int", "void"這樣高亮起來呢? 再在上面的檔案~/.vim/syntax/c.vim中添加下面的東東:

"========================================================
" My Own DataType
"========================================================
syn keyword cType My_Type_1 My_Type_2 My_Type_3

這樣你自己的類型My_Type_1, My_Type_2, My_Type_3就也可以向"int"一樣高亮起來了, 這樣的缺點是每增加一個類型, 就要手動在這裡添加一下

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
比較有用的幾個命令

vnew         垂直開新裝口

<C-W-W> 切換視窗

:helptags ~/.vim/doc 匯入新文檔

split 水平開新視窗

>     touch建立一個文檔兩法

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q src(src是代碼目錄)
在對C++檔案進行補全時,OmniCppComplete外掛程式需要在標籤檔案中包含C++的額外資訊,因此上面的ctags命令不同於以前我們所使用的,它專門為C++語言產生一些額外的資訊,上述選項的含義如下:

 --c++-kinds=+p  : 為C++檔案增加函數原型的標籤
--fields=+iaS   : 在標籤檔案中加入繼承資訊(i)、類成員的存取控制資訊(a)、以及函數的指紋(S)
--extra=+q      : 為標籤增加類修飾符。注意,如果沒有此選項,將不能對類成員補全

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
用到高亮的書籤 -- 外掛程式: VisualMark的時候總是報錯 E197不能設定語言 en_US之類的。
看help      google好久    無解
最後進其外掛程式源碼看到有設定語言的一段注釋“" Set the language to English”
連忙 $locale -a 把下面代碼
 exec ":lan mes en_US"改為 exec ":lan mes en_US.utf8"問題得以解決。

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""'
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
看來從win過來,要慢慢改變下習慣了,在linux下我們有看源碼的機會,知所以然,這就是開源魅力之一?hh~

現在是 winxp ubuntu雙系統   ubuntu vbox了XPsp3 基本這樣裝後就回過1次win解決無法掛載問題。其他時候全在ubuntu裡,實在要IE了要QQ要遊戲的功能了就vbox。(ies4linux裝了但是看flash那個閃的和天上的星星一樣,沒法阿^_^~)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.