一 整體介紹python
配置路徑,/etc/vim/vimrc,這個是系統的vim配置,假設一臺PC多個用戶使用,每個用戶的習慣不一樣的話,可以使用不一樣的配置。在用戶文件夾下新建一個.vimrc的文件就可以了。c++
我眼下是將配置寫在系統的配置中,個人配置文件例如如下所看到的:git
set nu set tabstop=4 set autoindent set matchtime=1 set hlsearch set cindent set shiftwidth=4 set ruler set showmode colorscheme desert set guifont=Droid\ Sans\ Mono\ 14
上面是主要的配置。寫在系統配置中,在我的用戶中,作了一些有趣的定製,眼下用戶文件夾下的vimrc的配置文件例如如下:github
"解決中文亂碼問題,先檢查編碼,轉換成utf-8 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 "nerdtree map <F2> :NERDTreeToggle<CR> "YouComepleteMe let g:ycm_global_ycm_extra_conf = '/home/zy/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' map <F3> :YcmCompleter GoToDefinitionElseDeclaration<CR> "tagbar setting nnoremap <silent> <F4> :TagbarToggle<CR> let g:tagbar_ctags_bin='/usr/bin/ctags' let g:tagbar_width=30 "Bundle setting set nocompatible " be iMproved filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' Bundle 'vim-scripts/fcitx.vim' "方便xml的插件 Bundle 'othree/xml.vim' "本身主動補全的插件 Bundle 'Valloric/YouCompleteMe' "文件夾樹 Bundle 'scrooloose/nerdtree' Bundle 'majutsushi/tagbar'
Bundle 'vim-scripts/a.vim' filetype plugin indent on " required!
1.不一樣平臺下的字體設置不同,爲了通用,可以這樣設置,參見(http://stackoverflow.com/questions/3539437/gvim-ubuntu-letter-spacing-consolas-font):ubuntu
if has("gui_gtk2") set guifont=Consolas\ 11 elseif has("gui_macvim") set guifont=Consolas:h12 elseif has("gui_win32") set guifont=Consolas:h11 end
2. 使用vundle管理vim的插件,參考:點擊打開連接:vim
(1) 下載vundlewindows
git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle(2) vimrc中加入配置腳本:
set nocompatible " be iMproved let g:ycm_global_ycm_extra_conf = '/home/zy/.vim/bundle/YouCompleteMe/third_party/ycmd/examples/.ycm_extra_conf.py' filetype off " required! set rtp+=~/.vim/bundle/vundle/ call vundle#rc() " let Vundle manage Vundle " required! Bundle 'gmarik/vundle' Bundle 'vim-scripts/fcitx.vim' "方便xml的插件 Bundle 'othree/xml.vim' "本身主動補全的插件 Bundle 'Valloric/YouCompleteMe' "文件夾樹 Bundle 'scrooloose/nerdtree' filetype plugin indent on " required!當中, othree/xml.vim,是指github上用戶爲othree寫的xml.vim插件,假設是其餘地方的資源,寫全部url就能夠.
vim +BundleInstall +qall
a. xml.vim 編寫xml的插件。詳細用法參見doc裏面的說明文件;瀏覽器
b. YouCompleteMe 補全的插件,聽說是最好用的補全插件,需要編譯,詳細方法參見:點擊打開連接 . 我編譯的時候遇到問題:Could not find pythonLibs,方法:sudo apt-get install python-dev. 還有錯誤,是編譯內存不夠的問題。又一次安裝就能夠. 還有C++頭文件和stl系統函數不能本身主動補全的問題,是配置文件裏沒有寫好的問題,打開配置文件:/home/zy/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py,使用命令:app
echo | clang -v -E -x c++ -來查找C++相應的頭文件,而後講輸出結果加入到上面的配置文件裏就能夠。
詳細細節在github上都有講,需要說明的是,假設不能補全stl,又一次編譯試試。用的是quick安裝的方法,比較簡單。
函數
c. NERDTree 文件文件夾樹。Bundle 'scrooloose/nerdtree' ,設置參考帖子:點擊打開連接 在vimrc中設置相應的快捷鍵:map <F2> :NERDTreeToggle<CR>,另外。ctrl+w可以切換窗體.假設在終端下打開gvim,而後打開文件夾就顯示的是當前的根文件夾,而在文件瀏覽器裏右鍵用gvim打開就是用戶根文件夾. 詳細命令可以查看幫助文檔
d.TagBar 瀏覽代碼符號的插件,相對於taglist,tagbar在面向對象方面作的更好。因此選擇了tagbar. 相同依據上面的方式去安裝tagvar,github地址:點擊打開連接.這個插件是基於ctags,因此需要先安裝ctags(sudo apt-get install ctags). 而後作例如如下配置:
"tagbar setting nnoremap <silent> <F4> :TagbarToggle<CR> let g:tagbar_ctags_bin='/usr/bin/ctags' let g:tagbar_width=30
使用F4鍵就可以切換tagbar的顯示了
f. 批量凝視與反凝視。比較簡單就不用插件了,參見博客點擊打開連接.選中要凝視的行,ctrl+v進入列模式。按下"I",進入插入模式,輸入相應的凝視符就能夠,注意按兩次esc.批量取消凝視,相同是這個方案.固然存在這種插件,只是不能全部依賴插件.
g.C文件和.h文件之間的高速切換。a.vim插件,github地址:點擊打開連接.命令行中輸入":A"可以進行高速切換。因爲比較簡單就不需要設置快捷鍵了。更加具體的請參考幫助文檔.
"解決中文亂碼問題,先檢查編碼,轉換成utf-8 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8
------------------------------------------------------------------------------------------------------------------------------------------------
使用技巧:
1.格式化代碼:
格式化全文: gg=G 格式化當前航: ==
2. 給vim裝一箇中文的幫助文檔。參考帖子:點擊打開連接
(1)下載安裝包:點擊打開連接
(2)解壓縮,進行安裝:
sudo ./vimcdoc.sh -i(3)配置一下,在~/.vimrc中加入一句:
set helplang=cn(4)在vim中使用:
:help usr就可以使用中文的vim幫助文檔了。感謝翻譯的這羣人。
3. 輸入的時候居中
需求:有時候老是想在屏幕中間輸入。直接在命令行模式下輸入zz就能夠。參見博客:點擊打開連接
未完待續,。。