vim配置
vim配置
" 定义快捷键的前缀,即 <Leader>
let mapleader=";"
" ================================================================================
"
"	一. 插件配置
"
" =================================================================================
" -----------------------------------------------------------------------------
"  < Vundle 插件管理工具配置 >
" -----------------------------------------------------------------------------
" git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
" :PluginInstall/:PluginClean/:PluginUpdate
set nocompatible                                      "禁用 Vi 兼容模式
filetype off                                          "禁用文件类型侦测
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" 使用Vundle来管理插件,这个必须要有。
Plugin 'VundleVim/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'tomasr/molokai'
Plugin 'vim-scripts/phd'
Plugin 'Lokaltog/vim-powerline'
Plugin 'scrooloose/nerdtree'
Plugin 'Yggdroot/indentLine'
Plugin 'scrooloose/nerdcommenter'
Plugin 'SirVer/ultisnips'
Plugin 'fholgado/minibufexpl.vim'
Plugin 'cSyntaxAfter'
Plugin 'gcmt/wildfire.vim'
Plugin 'sjl/gundo.vim'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'jiangmiao/auto-pairs'
Plugin 'repeat.vim'
Plugin 'vim-javacompleteex'
Plugin 'Mark--Karkat'
Plugin 'Shougo/neocomplcache.vim'
Plugin 'msanders/snipmate.vim'
Plugin 'tpope/vim-surround'
Plugin 'scrooloose/syntastic'
Plugin 'majutsushi/tagbar'
Plugin 'TxtBrowser'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'mattn/emmet-vim'
call vundle#end()				" 插件列表结束
filetype plugin indent on 
filetype on                     
filetype plugin on        
      
" -----------------------------------------------------------------------------
"  < nerdtree 插件配置 >
" -----------------------------------------------------------------------------
" 有目录村结构的文件浏览插件
nmap <F2> :NERDTreeToggle<CR>	" 使用 NERDTree 插件查看工程文件。
let NERDTreeWinSize=32		" 设置NERDTree子窗口宽度
let NERDTreeWinPos="left"	" 设置NERDTree子窗口位置
let NERDTreeShowHidden=1	" 显示隐藏文件
let NERDTreeMinimalUI=1		" NERDTree 子窗口中不显示冗余帮助信息
let NERDTreeAutoDeleteBuffer=1	" 删除文件时自动删除文件对应 buffer
" -----------------------------------------------------------------------------
"  < powerline 插件配置 >
" -----------------------------------------------------------------------------
" 状态栏插件,更好的状态栏效果
" 设置状态栏主题风格
let g:Powerline_colorscheme='solarized256'
" -----------------------------------------------------------------------------
"  < indentLine 插件配置 >
" -----------------------------------------------------------------------------
nmap <leader>i :IndentLinesToggle<CR>	" 开启/关闭对齐线
let g:indentLine_color_term = 239	" 设置终端对齐线颜色,如果不喜欢可以将其注释掉采用默认颜色
" -----------------------------------------------------------------------------
"  < nerdcommenter 插件配置 >
" -----------------------------------------------------------------------------
" 我主要用于C/C++代码注释(其它的也行)
" 以下为插件默认快捷键,其中的说明是以C/C++为例的,其它语言类似
" <Leader>ci 以每行一个 /* */ 注释选中行(选中区域所在行),再输入则取消注释
" <Leader>cm 以一个 /* */ 注释选中行(选中区域所在行),再输入则称重复注释
" <Leader>cc 以每行一个 /* */ 注释选中行或区域,再输入则称重复注释
" <Leader>cu 取消选中区域(行)的注释,选中区域(行)内至少有一个 /* */
" <Leader>ca 在/*...*/与//这两种注释方式中切换(其它语言可能不一样了)
" <Leader>cA 行尾注释
let NERDSpaceDelims = 1                     "在左注释符之后,右注释符之前留有空格
" -----------------------------------------------------------------------------
"  < UltiSnips 插件配置 >
" -----------------------------------------------------------------------------
" 路径为 ~/.vim/bundle/ultisnips/mysnippets/cpp.snippets
let g:UltiSnipsSnippetDirectories=["mysnippets"]
" -----------------------------------------------------------------------------
"  < MiniBufExplorer 插件配置 >
" -----------------------------------------------------------------------------
map <Leader>bl :MBEToggle<cr>	" 显示/隐藏 MiniBufExplorer 窗口
" " let g:miniBufExplMapWindowNavArrows = 1     "用Ctrl加方向键切换到上下左右的窗口中去
" let g:miniBufExplMapWindowNavVim = 1        "用<C-k,j,h,l>切换到上下左右的窗口中去
" let g:miniBufExplMapCTabSwitchBufs = 1
noremap <Leader>bn :bn<CR>
noremap <Leader>bp :bp<CR>
" 在不使用 MiniBufExplorer 插件时也可用<C-k,j,h,l>切换到上下左右的窗口中去
noremap <c-k> <c-w>k
noremap <c-j> <c-w>j
noremap <c-h> <c-w>h
noremap <c-l> <c-w>l
" -----------------------------------------------------------------------------
"  < cSyntaxAfter 插件配置 >
" -----------------------------------------------------------------------------
" ci
au! BufRead,BufNewFile,BufEnter *.{sh,py,c,cpp,h,java,javascript} call CSyntaxAfter()
" -----------------------------------------------------------------------------
"  < wildfire 插件配置 >
" -----------------------------------------------------------------------------
" 快捷键
map <SPACE> <Plug>(wildfire-fuel)
vmap <S-SPACE> <Plug>(wildfire-water)
" 适用于哪些结对符
let g:wildfire_objects = ["i'", 'i"', "i)", "i]", "i}", "i>", "ip"]
" -----------------------------------------------------------------------------
"  < repeat 插件配置 >
" -----------------------------------------------------------------------------
" 主要用"."命令来重复上次插件使用的命令
 
" -----------------------------------------------------------------------------
"  < snipMate 插件配置 >
" -----------------------------------------------------------------------------
" 用于各种代码补全,这种补全是一种对代码中的词与代码块的缩写补全,详细用法可以参
" 考使用说明或网络教程等。不过有时候也会与 supertab 插件在补全时产生冲突,如果大
" 侠有什么其它解决方法希望不要保留呀
" -----------------------------------------------------------------------------
"  < gundo  插件配置 >
" -----------------------------------------------------------------------------
nnoremap <Leader>ud :GundoToggle<CR>	" 调用 gundo 树
set undofile				" 开启保存 undo 历史功能
set undodir=~/.undo_history/		" undo 历史保存路径
" -----------------------------------------------------------------------------
"  < auto-pairs 插件配置 >
" -----------------------------------------------------------------------------
" 用于括号与引号自动补全,不过会与函数原型提示插件echofunc冲突
" 所以我就没有加入echofunc插件
" -----------------------------------------------------------------------------
"  < ctrlp.vim 插件配置 >
" -----------------------------------------------------------------------------
" 一个全路径模糊文件,缓冲区,最近最多使用,... 检索插件;详细帮助见 :h ctrlp
" 常规模式下输入:Ctrl + p 调用插件
" -----------------------------------------------------------------------------
"  < emmet-vim(前身为Zen coding) 插件配置 >
" -----------------------------------------------------------------------------
" HTML/CSS代码快速编写神器,详细帮助见 :h emmet.txt
" -----------------------------------------------------------------------------
"  < vim-javacompleteex(也就是 javacomplete 增强版)插件配置 >
" -----------------------------------------------------------------------------
" java 补全插件
" -----------------------------------------------------------------------------
"  < Mark--Karkat(也就是 Mark) 插件配置 >
" -----------------------------------------------------------------------------
" 给不同的单词高亮,表明不同的变量时很有用,详细帮助见 :h mark.txt
" -----------------------------------------------------------------------------
"  < neocomplcache 插件配置 >
" -----------------------------------------------------------------------------
" 关键字补全、文件路径补全、tag补全等等,各种,非常好用,速度超快。
let g:neocomplcache_enable_at_startup = 1     "vim 启动时启用插件
" let g:neocomplcache_disable_auto_complete = 1 "不自动弹出补全列表
在弹出补全列表后用 <c-p> 或 <c-n> 进行上下选择效果比较好
" -----------------------------------------------------------------------------
"  < surround 插件配置 >
" -----------------------------------------------------------------------------
" 快速给单词/句子两边增加符号(包括html标签),缺点是不能用"."来重复命令
" 不过 repeat 插件可以解决这个问题,详细帮助见 :h surround.txt
" -----------------------------------------------------------------------------
"  < Syntastic 插件配置 >
" -----------------------------------------------------------------------------
" 用于保存文件时查检语法
" ================================================================================
"
"	二. 主题风格
"
" =================================================================================
" 配色方案
set background=dark
"colorscheme solarized
colorscheme molokai
"colorscheme phd
" ================================================================================
"
"	三. 快捷键设置
"
" =================================================================================
nmap <leader>q :wq!<CR>
" ================================================================================
"
"	四. 常规设置
"
" =================================================================================
" -----------------------------------------------------------------------------
"  < 编写文件时的配置 >
" -----------------------------------------------------------------------------   
syntax enable		" 开启语法高亮功能
syntax on		" 允许用指定语法高亮配色方案替换默认方案
filetype indent on	" 自适应不同语言的智能缩进
set expandtab		" 将制表符扩展为空格数
set tabstop=4		" 设置编辑时制表符占用空格
set shiftwidth=4	" 设置格式化时制表符占用空格数
"set softtabstop=4	" 让 vim 把连续数量的空格视为一个制表符
"retab
  
set smartindent                 "启用智能对齐方式
set smarttab                   "指定按一次backspace就删除shiftwidth宽度
set autoread	                " 当文件在外部被修改,自动更新该文件
" 基于缩进或语法进行代码折叠
"set foldmethod=indent
set foldmethod=syntax
" 启动 vim 时关闭折叠代码
set nofoldenable
" 常规模式下用空格键来开关光标行所在折叠(注:zR 展开所有折叠,zM 关闭所有折叠)
" nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
" 启用每行超过80列的字符提示(字体变蓝并加下划线),不启用就注释掉
" au BufWinEnter * let w:m2=matchadd('Underlined', '\%>' . 100 . 'v.\+', -1) 
" -----------------------------------------------------------------------------
"  < 编码配置 >
"  注:使用utf-8格式后,软件与程序源码、文件路径不能有中文,否则报错
" -----------------------------------------------------------------------------
set encoding=utf-8                "设置gvim内部编码,默认不更改
set fileencoding=utf-8            "设置当前文件编码,可以更改,如:gbk(同cp936)
set fileencodings=ucs-bom,utf-8,gbk,cp936,latin-1     "设置支持打开的文件的编码
set fileformat=unix               "设置新(当前)文件的<EOL>格式,可以更改,如:dos(windows系统常用)
set fileformats=unix,dos,mac      "给出文件的<EOL>格式类型
" -----------------------------------------------------------------------------
"  < Linux Gvim/Vim 默认配置> 做了一点修改
" -----------------------------------------------------------------------------
set incsearch			" 开启实时搜索功能
set ignorecase			" 搜索时大小写不敏感
set wildmenu			" vim 自身命令行模式智能补全
set mouse=a                    	" 在任何模式下启用鼠标
set t_Co=256                    " 在终端启用256色
set backspace=2                	" 设置退格键可用
" -----------------------------------------------------------------------------
"  < 其它配置 >
" -----------------------------------------------------------------------------
au BufRead,BufNewFile,BufEnter * cd %:p:h	" 自动切换目录为当前编辑文件所在目录
set writebackup                 "保存文件前建立备份,保存成功后删除该备份
set nobackup                    "设置无备份文件
set noswapfile                  "设置无临时文件
set vb t_vb=                    "关闭提示音
"noremap <c-k> <c-w>k		"用<C-k,j,h,l>切换到上下左右的窗口中去
"noremap <c-j> <c-w>j
"noremap <c-h> <c-w>h
"noremap <c-l> <c-w>l
set ruler		" 显示光标当前位置
set number		" 开启行号显示
set cursorline		" 高亮显示当前行/列
set cursorcolumn
set hlsearch		" 高亮显示搜索结果
set laststatus=2	" 总是显示状态栏
vim代码模板补全
文件路径:~/.vim/bundle/ultisnips/mysnippets/cpp.snippets
例子:https://github.com/honza/vim-snippets
模板规则
snippet if "if statement" i
if (${1:/* condition */}) { 
    ${2:TODO} 
} 
endsnippet
 
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号