我現在VIM配置,用了4-5年了,very good
設定檔+外掛程式包+tag指令碼: /Files/magic-chen/vim_config.rar
先上張圖吧:
設定檔:
"""""""""""""""""""""""""""""""""
" peter.chen
"""""""""""""""""""""""""""""""""
" => General Options "{{{
set guifont=DejaVu\ Sans\ YuanTi\ Mono\ 10
" Session
set sessionoptions-=curdir
set sessionoptions+=sesdir
" 高亮當前行
set cursorline
set nocursorcolumn
" 使用非相容模式
set nocompatible
" 設定文字編碼自動識別
set fencs=utf-8,gb18030
" 有關搜尋的選項
set hls
set incsearch
"set ic smartcase
" 輸入的命令顯示出來
set showcmd
" 記錄行數
set history=200
" 當檔案在外部被修改時,自動讀取
set autoread
" 一直啟動滑鼠
set mouse=a
" 設定mapleader
let mapleader = ";"
let g:mapleader = ";"
" 快速重載設定檔
map <leader>s :source ~/.vimrc<cr>
map <leader>e :e! ~/.vimrc<cr>
" 當.vimrc被修改時,重載之
autocmd! bufwritepost vimrc source ~/.vimrc
" 自動跳轉到上一次開啟的位置
autocmd BufReadPost *
\ if line("'\"") > 0 && line ("'\"") <= line("$") |
\ exe "normal! g'\"" |
\ endif
"}}}
" => Colors and Fonts "{{{
set t_Co=256
" 設定vim的本色方案
"set background=dark
"colorscheme wombat
colorscheme desert
" 文法高亮
syntax on
" 字型
"set gfn=Vera\ Sans\ YuanTi\ Mono:h10
"set gfn=Droid\ Sans\ Fallback:h10
" GUI
if has("gui_running")
set guioptions-=T
let psc_style='cool'
endif
" 摺疊相關
set foldmethod=marker
"}}}
" => other UI options"{{{
" Tab縮排
set smarttab
set tabstop=4
set expandtab
" 自動縮排
set smartindent
set shiftwidth=4
set autoindent
set cindent
" 顯示行號
set number
" 顯示光線標位置
set ruler
" wild菜單
set wildmenu
" 上下移動時,留3行
set so=3
" set backspace
set backspace=eol,start,indent
" Backspace and cursor keys wrap to
set whichwrap+=<,>,h,l
" set magic on
set magic
" No sound on errors
set noerrorbells
set novisualbell
set t_vb=
" 括弧匹配
set showmatch
" How many tenths of a second to blink
set mat=2
" 狀態列
set laststatus=2
function! CurDir()
let curdir = substitute(getcwd(), '/home/peter', "~/", "g")
return curdir
endfunction
set statusline=\ %f%m%r%h\ %w\ %<CWD:\ %{CurDir()}\ %=Pos:\ %l/%L:%c\ %p%%\
" Smart way to move btw. windows
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>l
" 命令視窗大小
set cmdheight=1
"}}}
" => Files "{{{
" 檔案編碼
set fileencodings=ucs-bom,utf-8,gb2312,gbk,gb18030,big-5,ucs,latin1
" 開機檔案類型外掛程式
filetype on
filetype plugin on
filetype indent on
" 檔案類型
set ffs=unix,dos
nmap <leader>fd :se ff=dos<cr>
nmap <leader>fu :se ff=unix<cr>
" 不備份檔案
set nobackup
set nowritebackup
"}}}
" => MISC"{{{
"}}}
" => Plugins "{{{
" 自動完成
set completeopt=longest,menu
" for taglist
nmap <F10> :TlistToggle <CR>
let Tlist_Use_Right_Window=1
let Tlist_File_Fold_Auto_Close=1
nmap <F9> :NERDTreeToggle <CR>
" MiniBufExpl
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
nmap <F4> :MiniBufExplorer<cr> :UMiniBufExplorer<cr>
" SuperTab
" for AutoComplete
"let g:AutoComplPop_NotEnableAtStartup = 1
"nmap <F10> :AutoComplPopEnable
"nmap <C-F10> :AutoComplPopDisable
" for echofunc
set tags+=~/.vim/systags
"nmap <M-F9> :!ctags --append=yes -f ~/.vim/systags --fields=+lS
"nmap <C-F9> :!ctags -R --fields=+lS
let g:EchoFuncLangsUsed = ["c", "cpp", "java"]
"}}}
" => DIY的一些文法高亮"{{{
"hi Mark ctermbg=Red ctermfg=Green
"syntax region unKnown start='???' end='???'
"hi def link unKnown Mark
" Test line: ??? >...< ???
"match Mark '???'
"}}}
" => 快速鍵"{{{
" Buffer
set hidden
nmap <leader>bn :bn<cr>
nmap <leader>bp :bp<cr>
nmap <leader>bb :b#<cr>
nmap <leader>bls :buffers<cr>
nmap <leader>b1 :b1<cr>
nmap <leader>b2 :b2<cr>
nmap <leader>b3 :b3<cr>
nmap <leader>b4 :b4<cr>
nmap <leader>b5 :b5<cr>
nmap <leader>b6 :b6<cr>
nmap <leader>b7 :b7<cr>
nmap <leader>b8 :b8<cr>
nmap <leader>b9 :b9<cr>
"nmap <F3> :vimgrep <cword> **/*.cpp **/*.h<cr> :copen <cr>
"nmap <F3> mZ :grep -Rn <cword> **/*.cpp **/*.c **/*.h **/*.java 2>/dev/null<cr><cr> :copen <cr>
nmap <F3> mZ :grep -Rn <cword> ./ 2>/dev/null<cr><cr> :copen <cr>
set grepformat=%f:%l:%m
"set grepprg=
"}}}
set tags=tags;
set autochdir
依賴:
exuberant-ctags cscope
tag產生命令:
#!/bin/bash
find $1 -name "*.h" -o -name "*.c" -o -name "*.cpp" -o -name "*.java" > files
cscope -bkq -i files
ctags -R
外掛程式: (不知道怎麼傳附件)
.vim
├── autoload
│ └── csapprox.vim
├── colors
│ ├── 3dglasses.vim
│ ├── adaryn.vim
│ ├── adrian.vim
│ ├── aiseered.vim
│ ├── anotherdark.vim
│ ├── aqua.vim
│ ├── astronaut.vim
│ ├── asu1dark.vim
│ ├── autumn2.vim
│ ├── autumnleaf.vim
│ ├── autumn.vim
│ ├── baycomb.vim
│ ├── bclear.vim
│ ├── biogoo.vim
│ ├── blacksea.vim
│ ├── bluegreen.vim
│ ├── borland.vim
│ ├── breeze.vim
│ ├── brookstream.vim
│ ├── buttercream.vim
│ ├── calmar256_dark.vim
│ ├── calmar256-dark.vim
│ ├── calmar256_light.vim
│ ├── calmar256-light.vim
│ ├── camo.vim
│ ├── candycode.vim
│ ├── candy.vim
│ ├── chela_light.vim
│ ├── chocolateliquor.vim
│ ├── clarity.vim
│ ├── cleanphp.vim
│ ├── colorer.vim
│ ├── dante.vim
│ ├── darkblue2.vim
│ ├── darkbone.vim
│ ├── darkslategray.vim
│ ├── darkspectrum.vim
│ ├── darkZ.vim
│ ├── dawn.vim
│ ├── denim.vim
│ ├── desert256.vim
│ ├── desertEx.vim
│ ├── dusk.vim
│ ├── dw_blue.vim
│ ├── dw_cyan.vim
│ ├── dw_green.vim
│ ├── dw_orange.vim
│ ├── dw_purple.vim
│ ├── dw_red.vim
│ ├── dw_yellow.vim
│ ├── earendel.vim
│ ├── eclipse.vim
│ ├── ekvoli.vim
│ ├── fine_blue2.vim
│ ├── fine_blue.vim
│ ├── fnaqevan.vim
│ ├── fog.vim
│ ├── freya.vim
│ ├── fruit.vim
│ ├── fruity.vim
│ ├── golden.vim
│ ├── guardian.vim
│ ├── habilight.vim
│ ├── herald.vim
│ ├── impact.vim
│ ├── inkpot.vim
│ ├── ironman.vim
│ ├── jammy.vim
│ ├── jellybeans.vim
│ ├── kellys.vim
│ ├── leo.vim
│ ├── lettuce.vim
│ ├── lucius.vim
│ ├── manxome.vim
│ ├── marklar.vim
│ ├── maroloccio.vim
│ ├── martin_krischik.vim
│ ├── matrix.vim
│ ├── metacosm.vim
│ ├── molokai.vim
│ ├── moria.vim
│ ├── moss.vim
│ ├── motus.vim
│ ├── mustang.vim
│ ├── navajo_night.vim
│ ├── navajo-night.vim
│ ├── navajo.vim
│ ├── neon.vim
│ ├── neverness.vim
│ ├── nightshimmer.vim
│ ├── night.vim
│ ├── no_quarter.vim
│ ├── northland.vim
│ ├── nuvola.vim
│ ├── oceanblack.vim
│ ├── oceandeep.vim
│ ├── oceanlight.vim
│ ├── olive.vim
│ ├── papayawhip.vim
│ ├── peaksea.vim
│ ├── print_bw.vim
│ ├── pyte.vim
│ ├── railscasts2.vim
│ ├── railscasts.vim
│ ├── rdark.vim
│ ├── relaxedgreen.vim
│ ├── robinhood.vim
│ ├── rootwater.vim
│ ├── satori.vim
│ ├── sea.vim
│ ├── settlemyer.vim
│ ├── sienna.vim
│ ├── silent.vim
│ ├── simpleandfriendly.vim
│ ├── softblue.vim
│ ├── soso.vim
│ ├── spring.vim
│ ├── summerfruit256.vim
│ ├── synic.vim
│ ├── tabula.vim
│ ├── tango2.vim
│ ├── tango.vim
│ ├── taqua.vim
│ ├── tcsoft.vim
│ ├── tir_black.vim
│ ├── tolerable.vim
│ ├── torte.vim
│ ├── twilight.vim
│ ├── two2tango.vim
│ ├── vc.vim
│ ├── vibrantink.vim
│ ├── vividchalk.vim
│ ├── vylight.vim
│ ├── winter.vim
│ ├── wombat256.vim
│ ├── wombat.vim
│ ├── wood.vim
│ ├── wuye.vim
│ ├── xemacs.vim
│ ├── xoria256.vim
│ ├── zenburn.vim
│ └── zmrok.vim
├── doc
│ ├── bufexplorer.txt
│ ├── CSApprox.txt
│ ├── NERD_tree.txt
│ ├── supertab.txt
│ ├── taglist.txt
│ └── tags
├── minibufexpl.vim
├── nerdtree_plugin
│ ├── exec_menuitem.vim
│ └── fs_menu.vim
├── plugin
│ ├── autoload_cscope.vim
│ ├── bufexplorer.vim
│ ├── CSApprox.vim
│ ├── echofunc.vim
│ ├── mark.vim
│ ├── NERD_tree.vim
│ ├── ScrollColor.vim
│ ├── supertab.vim
│ └── taglist.vim
├── syntax
│ ├── cpp.vim
│ ├── c.vim
│ ├── ifdef.vim
│ └── java.vim
└── systags
6 directories, 166 files