http://blog.163.com/023_dns/blog/static/118727366201151411502874/
autocmd! bufwritepost _vimrc source %
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 基础配置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 处理文本中显示乱码
set encoding=utf-8
set fileencodings=chinese
set fileencoding=chinese
" 处理菜单及右键菜单乱码
source $vimruntime/delmenu.vim
source $vimruntime/menu.vim
" 处理consle输出乱码
language messages zh_cn.utf-8
" 关闭VIM兼容模式
"set nocompatible
" 文件编码格式
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936,gb2312
" 帮助文件使用中文
set helplang=cn
" 关闭语法高亮
syntax enable
" 根据文件类型高亮
filetype plugin on
" 显示行
set nu
" 设置折叠模式
"set foldcolumn=4
" 光标遇到折叠就打开
"set foldopen=all
" 用语法高亮来定义折叠
set foldmethod=syntax " 语法高亮折叠
"set foldmethod=indent " 更多的缩进表示更高级别的折叠
" 依标记折叠
set foldmethod=marker
" 缺省不产生备份文件
set nobackup
" 取消交换区
set nowb
" 鼠标点击边缘上下7行时自动滚动
set so=7
" 设置VIM皮肤色
if has("gui_running")
colorscheme candy
endif
" 保存400个命令和400个查找历史
set history=100
" 总在窗口右下角显示当前光标位置
set ruler
" 使用鼠标右键
set mouse=a
" 设置魔术
set magic
" 自动切换当前目录为当前文件所在的目录
set autochdir
" 突出显示当前行
set cursorline
" 置空错误铃声的终端代码
set t_vb=
" 隐藏工具栏
set guioptions-=T
" 隐藏菜单栏
set guioptions-=m
" 短暂跳转到匹配括号的时间
set matchtime=4
" 允许在有未保存的修改时切换缓冲区,此时的修改由 vim 负责保存
set hidden
" 启动后最大化
au GUIEnter * simalt ~x
" 显示TAB健
set list
" 去掉有关vi一致性模式,避免以前版本的一些bug和局限
set nocp
" 执行 VIM 缺省提供的 .vimrc文件的示例,包含了打开语法高亮显示等最常用的功能
source $VIMRUNTIME/vimrc_example.vim
"保存文件的格式顺序
set fileformats=dos,unix
"列高亮,与函数列表有冲突
"set cursorcolumn
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文件设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 不要备份文件
set nobackup
" 不要生成swap文件,当buffer被丢弃的时候隐藏它
set noswapfile
set bufhidden=hide
" 字符间插入的像素行数目
set linespace=0
" 增强模式中的命令行自动完成操作
set wildmenu
" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2
" 使回格键(backspace)正常处理indent, eol, start等
set backspace=2
" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l
" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI
" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report=0
" 不让vim发出讨厌的滴滴声
set noerrorbells
" 在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
" 自动加载被修改的文件
set autoread
" 单词换行处,整个单词不会折行
set lbr
" 字符宽度
set tw=0
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索与匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 在输入括号时光标会暂时地与相匹配的括号处,不影响输入
set showmatch
" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime=5
" 在搜索的时候忽略大小写
set ignorecase
" 不要高亮被搜索的句子(phrases)
set nohlsearch
" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch
" 输入:set list命令是应该显示些啥?
"set listchars=tab:\|\ ,trail:.,extends:>,precedes:<,eol:$
set listchars=tab:>-,trail:-
" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff=3
" 不要闪烁
set novisualbell
" 总是显示状态行
set laststatus=2
" 输入搜索内容时就显示搜索结果
set incsearch
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自动缩进
set ai
" 开启自动换行
set wrap
" 启动VIM时不要自动折叠代码
set foldlevel=100
" 缩进格式
au FileType html,python,vim,javascript,tpl setl shiftwidth=2 "html,python,vim,js shfit缩进格式
au FileType html,python,vim,javascript,tpl setl tabstop=2 "html,python,vim,js tab缩进格式
au FileType java,php setl shiftwidth=4 "java,php shift缩进格式
au FileType java,php setl tabstop=4 "java,php tab缩进格式
" 用空格代替制表符
set expandtab
" 在行和段开始处使用制表符
set smarttab
" 使用C语言缩进方式
set cindent
" 继承前一行的缩进方式,特别适用于多行注释
set autoindent
" 智能对齐方式
set smartindent
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 是否高亮显示当前标签
let Tlist_Auto_Highlight_Tag = 1
" 自动打开Tlist
let Tlist_Auto_Open = 0
" 自动更新Tlist
let Tlist_Auto_Update = 1
" 选择标签或文件后是否自动关闭标签列表窗口
let Tlist_Close_On_Select = 0
" 压缩方式
let Tlist_Compact_Format = 1
" 是否在标签列表窗口用标签原型替代标签名
let Tlist_Display_Prototype = 0
" 在标签名后是否显示标签有效范围
let Tlist_Display_Tag_Scope = 1
" 不显示折叠树
let Tlist_Enable_Fold_Column = 0
" 关闭VIM同时关闭Tlist
let Tlist_Exit_OnlyWindow = 1
" 不关闭其他的tags
let Tlist_File_Fold_Auto_Close = 0
" 为1则使用TlistToggle打开标签列表窗口后会获焦点至于标签列表窗口;为0则taglist打开后焦点仍保持在代码窗口
let Tlist_GainFocus_On_ToggleOpen = 1
" 显示标签列表窗口时允许/禁止扩展Vim窗口宽度
let Tlist_Inc_Winwidth = 0
" F12开关Tlist
nnoremap <C-F11> :TlistToggle<CR>
" 设置ctags运行的位置
let Tlist_Ctags_Cmd = 'D:\vim\vim73\ctags.exe'
" 设置tags文件目录
set tags=E:\sys_item\php\tczp\tags
" F12生成/更新tags文件
function! UpdateTagsFile()
silent !ctags -R --fields=+ianS --extra=+q
endfunction
nmap <C-F12> :call UpdateTagsFile()<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" NERDTreeToggle设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" F10打开目录树
"map <C-F10> :NERDTreeToggle<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Buffer设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:bufExplorerDefaultHelp=0 " Do not show default help.
let g:bufExplorerShowRelativePath=1 " Show relative paths.
let g:bufExplorerSortBy='mru' " Sort by most recently used.
let g:bufExplorerSplitRight=0 " Split left.
let g:bufExplorerSplitVertical=1 " Split vertically.
let g:bufExplorerSplitVertSize = 30 " Split width
let g:bufExplorerUseCurrentWindow=1 " Open in new window.
map <C-F8> :BufExplorer<CR>
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" MiniBuffer设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 允许进行<C-Tab>和<C-S-Tab>进行切换
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplModSelTarget = 1
let g:miniBufExplorerMoreThanOne=0 "让minibuffer只出现一个
map <C-Tab> :bn<CR> "切换Buffer,右切换
map <S-Tab> :bp<CR> "切换Buffer,左切换
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" winManager设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设置界面分割
let g:winManagerWindowLayout = "TagList|FileExplorer"
" 设置winmanager的宽度,默认为25
let g:winManagerWidth = 30
" 定义打开关闭winmanager按键
nmap wm :WMToggle<cr>
" 只剩下一个窗口时,退出
let g:persistentBehaviour=0
" 进入VIM的时候自动打开
"let g:AutoOpenWinManager = 1
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" cscope设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" cscope配置,设置为quickfix显示模式
":set cscopequickfix=s-,c-,d-,i-,t-,e-
" 添加cscope生成文件
":cs add E:\sys_item\php\tcsns\cscope.out E:\sys_item\php\tcsns
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Xdebug设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 配置Xdebug,内容显示包含数组
let g:debuggerMaxDepth = 7
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" SuperTab设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 记住上次补全的位置
" 0 - 不记录上次的补全方式
" 1 - 记住上次的补全方式,直到用其他的补全命令改变它
" 2 - 记住上次的补全方式,直到按ESC退出插入模式为止
"let g:SuperTabRetainCompletionType=2
"let g:SuperTabDefaultCompletionType="<C-X><C-O>"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" DoxygenToolkit 设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"let g:DoxygenToolkit_authorName="figth, 023_dns@163.com"
"let s:licenseTag = "Copyright(C)\<enter>"
"let s:licenseTag = s:licenseTag . "For free\<enter>"
"let s:licenseTag = s:licenseTag . "All right reserved\<enter>"
"let g:DoxygenToolkit_licenseTag = s:licenseTag
"let g:DoxygenToolkit_briefTag_funcName="yes"
"let g:doxygen_enhanced_color=1
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" load_template设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自动载入模版位置
let g:template_path = 'D:\vim\vimfiles\template\'
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" php设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 使用PHP快速注释 CTRL+P
source D:\vim\vimfiles\plugin\php-doc.vim
inoremap <C-p> <ESC>:call PhpDocSingle()<CR>
nnoremap <C-p> :call PhpDocSingle()<CR>
vnoremap <C-p> :call PhpDocRange()<CR>
" 语法补全使用php
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
" 使php识别EOT字符串
hi link phpheredoc string
" PHP支持折叠
let php_folding = 1
"php缩进
let PHP_autoformatcomment=1
" php启动帮助 快捷键普通模式下K
autocmd BufNewFile,Bufread *.ros,*.inc,*.php set keywordprg="help"
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" javascript设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 打开javascript折叠
let b:javascript_fold=1
" 打开javascript对dom、html和css的支持
let javascript_enable_domhtmlcss=1
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 其他设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设置字典 ~/.vim/dict/文件的路径
autocmd filetype javascript set dictionary=D:/vim/vimfiles/dict/javascript.dict
autocmd filetype css set dictionary=D:/vim/vimfiles/dict/css.dict
autocmd filetype php set dictionary=D:/vim/vimfiles/dict/php.dict
" 设置项目工程的目录
function! SET_LOCAL_TAGS()
let dir = expand("%:p:h") "获得源文件路径
if stridx(dir, "E:\sys_item\php\tcsns") ==0 "路径在指定文件夹里。
set tags=E:\sys_item\php\tcsns "设置工程的tags
endif
endfunction
autocmd BufEnter * call SET_LOCAL_TAGS()