Linux下vim的配置

Linux下vim的配置,原文地址:http://blog.csdn.net/luckytanggu/article/details/52045357

一、安装vundle

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  
  
  • 1
  • 1

默认安装在/.vim/bundle/vundle下;


安装v undle

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
 
 
  • 1
  • 1

默认安装在/.vim/bundle/vundle下;

安装vundle

$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
 
 
  • 1
  • 1

默认安装在/.vim/bundle/vundle下;

安装vundle

$ git clone https://github.com/V
 
 

二、创建vimrc(vim的配置文件)

可以直接克隆我的vim配置文件到你的本地

git clone git@github.com:Tangugo/vim.git

把 .vimrc 配置文件拷贝到 ~/目录下

cp vim/.vimrc ~/

注:前面带点.的文件是隐藏文件,需 ls -la 才能查看到

vim配置文件一般分为以下四部分:

  • 加载vim的相关插件(vim插件大全)
  • vim的常规设置
  • vim插件的设置
  • 键盘中一些键的功能重新映射其他键或组合键上(例如Esc退出插入模式映射到jj组合键)

三、安装插件让.vimrc配置文件生效

按以下步骤操作

vim 
:PluginInstall

安装插件需要一定的时间,跟网速有关,喝杯茶等待

四、Vim 自动补全插件 YouCompleteMe 安装与配置a

可以参考 http://howiefh.github.io/2015/05/22/vim-install-youcompleteme-plugin/

1、安装

确保Vim版本至少是7.3.584,并且支持python2脚本

cd ~/.vim/bundle/YouCompleteMe 
./install.py

需要支持C语言的话

./install.py –clang-completer

2、拷贝配置文件

cp third_party/ycmd/cpp/ycm/.ycm_extra_conf.py ~/

3、修改配置文件,在flags部分后添加如下内容:

‘-isystem’, 
‘/usr/include’,

.vimrc中设定 YouCompleteMe配置(第二部克隆vimrc文件,该vimrc已指定了)

let g:ycm_global_ycm_extra_conf = ‘~/.ycm_extra_conf.py’

五、安装完后我的补全遇到如下问题:

在写代码时,每当输入 . 就提示 ConnectionError 错误提示(如输入: os.),到 /tmp/ycm_temp 目录下查看日志文件,提示如下错误:

<code class="language-python hljs  has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">Traceback (most recent call last):
  File <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/home/zhu/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/JediHTTP/jedihttp.py"</span>, line <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">23</span>, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> <module>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> waitress <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import</span> serve
ImportError: No module named waitress
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>

发现报错源,顺藤摸瓜,于是到PyPi(几乎所有Python的第三方库在此处都能找到)查找waitress模块,下载安装后,完美解决了代码补全出现的问题

waitress安装:

tar -zxvf waitress-1.0a2.tar.gz 
cd waitress-1.0a2 
python setup.py install # 注:非root用户需在命令前加上 sudo

安装完后vim就变得无比强大绚丽了,看截图 
vim


以下是我的vimrc配置文件

<code class="hljs coffeescript has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;"><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" ************* Vundle 配置 ****************
filetype off     "</span> 侦测文件类型
set rtp+=~/.vim/bundle/Vundle.vim
call vundle<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#begin()</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" Vundle.vim : vim的一个非常好用的插件管理器
Bundle 'gmarik/Vundle.vim'

"</span> 更酷的启动界面
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Bundle 'mhinz/vim-startify'

"</span> 协作编程
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Bundle 'FredKSchott/CoVim'

"</span> 代码补全
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Valloric/YouCompleteMe'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'SirVer/ultisnips'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'honza/vim-snippets'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'YanhaoMo/snippets'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" Python代码补全
"</span>Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Pydiction'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 符号自动补全
Bundle 'Raimondi/delimitMate'

"</span> 文件搜索
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'kien/ctrlp.vim'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Shougo/unite.vim'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'scrooloose/nerdtree'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'vim-scripts/mru.vim'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 静态语法检查
Bundle 'scrooloose/syntastic'

"</span> 代码浏览
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'majutsushi/tagbar'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" git支持
Bundle 'tpope/vim-fugitive'
Bundle 'airblade/vim-gitgutter'

"</span> 美化主题
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'tomasr/molokai'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'morhetz/gruvbox'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'kien/rainbow_parentheses.vim'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'bling/vim-airline'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Bundle 'vim-airline-themes'
Bundle 'nathanaelkane/vim-indent-guides'
Bundle 'solarized'
Bundle 'jpo/vim-railscasts-theme'
"</span>Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'altercation/vim-colors-solarized.git'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Bundle 'fholgado/minibufexpl.vim'

"</span> 代码bug追踪
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'ZenCoding.vim'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 编辑增强
"</span> 多光标操作
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'terryma/vim-multiple-cursors'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 成对符号编辑
Bundle 'tpope/vim-surround'
Bundle 'tpope/vim-unimpaired'

"</span> 快速注释
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'scrooloose/nerdcommenter'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 自动对齐
Bundle 'godlygeek/tabular'
"</span> 快速移动
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Lokaltog/vim-easymotion'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 代码块对齐用
Bundle 'Yggdroot/indentLine'
"</span> 增强状态栏
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'rstatusline'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" tmux支持
Bundle 'benmills/vimux'

"</span> c/c++
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'vim-scripts/a.vim'</span>
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'vim-scripts/c.vim'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" org-mode
Bundle 'jceb/vim-orgmode'
Bundle 'tpope/vim-speeddating'

"</span> markdown
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'plasticboy/vim-markdown'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 可以通过浏览器实时预览,但是要安装额外依赖,详见官网
"</span>Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'suan/vim-instant-markdown'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 网页开发
Bundle 'mattn/emmet-vim'

"</span> pyhon
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'klen/python-mode'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Bundle 'python-imports.vim'

"</span> js
Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'coolwanglu/vim.js'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" golang
"</span>Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'fatih/vim-go'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 用ack代替grep搜索
Bundle 'mileszs/ack.vim'
"</span>bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'vimwiki/vimwiki'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"Bundle 'vim-scripts/bufexplorer.zip'
"</span>Bundle <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'terryma/vim-smooth-scroll'</span>

call vundle<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#end()</span>
filetype plugin <span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">on</span>                                              <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 载入文件类型插件
filetype indent on                                              "</span> 为特定文件类型载入相关缩进文件


<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" *************** gvim配置 ***************
if has("</span>gui_running<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")
    let $LANG='en'      "</span>设置gvim菜单栏始终显示为英文
    set langmenu=en
    source $VIMRUNTIME/delmenu.vim
    source $VIMRUNTIME/menu.vim
    <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"set guifont=DejaVu\ Sans\ Mono\ for\ Powerline\ Book\ 10
    set guifont=Source\ Code\ Pro\ for\ Powerline\ Regular\ 10
    set guioptions-=e
    set guioptions-=m
    set guioptions-=T
    set guioptions-=L
    set guioptions-=r
    set guioptions-=B
    set guioptions-=0
    set go=
    winpos 1000 0
    "</span>set lines=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">100</span> columns=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">150</span>      <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 开启时的窗口默认大小
endif


"</span> *************** vim常用的基本设置 ***************
set nocompatible                                                <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 不使用vi的键盘模式,而是vim自己的
"</span>syntax enable                                                   <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 开启语法高亮功能
syntax on                                                       "</span> 语法高亮支持
set nu                                                          <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 显示行号
set rnu                                                         "</span> 显示相对行号
set wrap                                                        <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 当一行文字很长时换行
"</span>set nowrap                                                      <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 当一行文字很长时取消换行
set showmatch                                                   "</span> 当光标移动到一个括号时高亮显示对应的另一个括号
set showcmd                                                     <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 回显输入的命令
set showmode                                                    "</span> 显示当前的模式
set clipboard+=unnamed                                          <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 关联系统的剪贴板
set ruler                                                       "</span> 在编辑过程中右下角显示光标的行列信息
set nocp                                                        <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 让Vim工作在不兼容模式下
set shortmess=atI                                               "</span> 启动时不显示捐助乌干达儿童的提示
set so=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>                                                        <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 上下滚行时空余6行
set autoindent                                                  "</span> 自动套用上一行的缩进方式
set smartindent                                                 <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 智能缩进
set mouse=a                                                     "</span> 开启鼠标支持
set laststatus=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>                                                <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 总是显示状态行
set backspace=indent,eol,start                                  "</span> 对退格键提供更好的支持
set ts=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>                                                        <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 设置tab长度为4
set sts=4                                                       "</span> 设置制表符宽度
set shiftwidth=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>                                                <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 设置缩进空格数
set expandtab                                                   "</span> 用空格代替tab键
set smarttab                                                    <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 更加智能的tab键
set hid                                                         "</span> 当buffer被丢弃时隐藏它
set encoding=utf-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span>                                              <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 默认使用utf-8编码格式
set fileencodings=utf-8,cp936,gb18030,big5,euc-kr,latin1        "</span> 自动判断编码时 依次尝试一下编码
set ffs=unix,dos,mac                                            <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 设置文件类型
set hlsearch                                                    "</span> 高亮搜索内容
set ignorecase                                                  <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 搜索模式里忽略大小写
set smartcase                                                   "</span> 如果搜索字符串里包含大写字母,则禁用 ignorecase
set incsearch                                                   <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 显示搜索的动态匹配效果
set lazyredraw                                                  "</span> 解决某些类型的文件由于syntax导致vim反应过慢的问题
set ttyfast                                                     <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 平滑地变化
set cc=80                                                       "</span> 第<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">80</span>字符处显示分隔符
set foldmethod=indent                                           <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 折叠方式
set nofoldenable                                                "</span> 不自动折叠
set foldcolumn=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>                                                <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 在行号前空出一列的宽度
set t_Co=256                                                    "</span> 设置<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">256</span>真彩色
set history=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1000</span>                                                <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 设置历史记录条数
"</span>set autoread                                                   <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 当文件在外部被修改时自动载入
"</span>set cindent                                                    <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 使用c语言的缩进格式
"</span>set whichwrap+=<,>,h,l                                         <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 允许backspace和光标键跨越行边界
"</span>set cmdheight=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>                                                <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 显示两行命令行

set list lcs=tab:\♠\ ,trail:•                                   "</span> 显示tab键为♠,并且显示每行结尾的空格为<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'•'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 一些备用字符:›┆┇┊┋♠♦•

"</span> 格式化状态行显示的内容
set statusline=[%t]\ %y\ %m%=%{&fileencoding}\ [%{&ff}]\ [%l,\ %c]\ [%L]\ [%p%%]

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 打开一个文件自动定位到上一次退出的位置
if has("</span>autocmd<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")
    au BufReadPost * if line("</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'\"") > 1 && line("'</span>\<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>) <= line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"$"</span>) | exe <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"normal! g'\""</span> | endif
endif

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 保存.vim文件后不用退出即可生效
"</span>autocmd BufWritePost $MYVIMRC source $MYVIMRC
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"au! bufwritepost .vimrc source %


"</span> ************** 备份设置 ****************
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"set nobackup                                                   "</span> 不进行备份
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"set nowb                                                       "</span> 重新载入文件时不要备份
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"set noswapfile                                                 "</span> 不使用swf文件,可能导致错误无法恢复


<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" *************** 关闭错误声音 **************
set noerrorbells
set novisualbell
set  t_vb=


"</span> **************** 设置vim主题外观 ***************
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"set background=light                                           "</span> 设置vim背景为浅色
set background=dark                                             <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 设置vim背景为深色
set cursorline                                                  "</span> 突出显示当前行
set cursorcolumn                                                <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 突出显示当前列

"</span>colorscheme molokai                                             <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 设置molokai高亮主题
"</span>colorscheme desert                                              <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 设置desert高亮主题
"</span><span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:solarized_termcolors=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">256</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"colorscheme solarized                                           "</span> 设置solarized高亮主题
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"let g:gruvbox_termcolors=16
colorscheme gruvbox                                             "</span> 设置gruvbox高亮主题


<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" ************** vim的配色 **************
"</span>hi CursorLine cterm=NONE ctermbg=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">237</span> ctermfg=NONE
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"hi CursorColumn cterm=NONE ctermbg=237 ctermfg=NONE
hi vertsplit ctermbg=bg guibg=bg
hi GitGutterAdd ctermbg=bg guibg=bg
hi GitGutterChange ctermbg=bg guibg=bg
hi GitGutterDelete ctermbg=bg guibg=bg
hi GitGutterChangeDelete ctermbg=bg guibg=bg
hi SyntasticErrorSign ctermbg=bg guibg=bg
hi SyntasticWarningSign ctermbg=bg guibg=bg
hi FoldColumn ctermbg=bg guibg=bg


"</span> *********** NERDTree插件配置 ***********
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> NERDTreeChDirMode=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>                                         <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 设置当前目录为nerdtree的起始目录
let NERDChristmasTree=1                                         "</span> 使得窗口有更好看的效果
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> NERDTreeMouseMode=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>                                         <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 双击鼠标左键打开文件
let NERDTreeWinSize=25                                          "</span> 设置窗口宽度为<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">25</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> NERDTreeQuitOnOpen=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>                                        <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 打开一个文件时nerdtree分栏自动关闭


"</span> *********** ctags插件配置 ***********
set tags+=/usr/include/tags


<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" ********* cscope插件配置 **********
if has("</span>cscope<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")
    "</span>set csprg=/usr/bin/cscope
    set csto=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
    set cst
    set nocsverb
    set cscopequickfix=s-,c-,d-,i-,t-,e- <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"在quickfix窗口中显示搜索结果


    "</span> add any database <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> current directory
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> filereadable(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"cscope.out"</span>)
        cs add cscope.out
        <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" else add database pointed to by environment
    elseif $CSCOPE_DB != "</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
        cs add $CSCOPE_DB
    endif
    set csverb
endif


"</span> *********** nerdcommenter快速注释插件配置 **********
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" Add spaces after comment delimiters by default
let g:NERDSpaceDelims = 1
"</span> Use compact syntax <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> prettified multi-line comments
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:NERDCompactSexyComs = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" Align line-wise comment delimiters flush left instead of following code indentation
let g:NERDDefaultAlign = 'left'
"</span> Set a language to use its alternate delimiters <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> <span class="hljs-reserved" style="box-sizing: border-box;">default</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:NERDAltDelims_java = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" Add your own custom formats or override the defaults
let g:NERDCustomDelimiters = { 'c': { 'left': '/**','right': '*/' } }
"</span> Allow commenting <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> inverting empty lines (useful <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">when</span> commenting a region)
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:NERDCommentEmptyLines = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" Enable trimming of trailing whitespace when uncommenting
let g:NERDTrimTrailingWhitespace = 1


"</span> *********** syntastic插件配置 ***********
set statusline+=%<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#warningmsg#</span>
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:syntastic_always_populate_loc_list = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:syntastic_auto_loc_list = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:syntastic_check_on_open = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:syntastic_check_on_wq = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:syntastic_error_symbol = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'✗'</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:syntastic_warning_symbol = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'⚡'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"let g:syntastic_cpp_include_dirs = ['/usr/include/qt']
"</span><span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:syntastic_cpp_compiler_options = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'-std=gnu++11 -Wall'</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:syntastic_mode_map = { <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'mode'</span>: <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'passive'</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'active_filetypes'</span>: [],<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'passive_filetypes'</span>: [] }


<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" ********** pydiction补全设置 **********
"</span><span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:pydiction_location = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'~/.vim/bundle/Pydiction/complete-dict'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>defalut <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:pydiction_menu_height == <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">15</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"let g:pydiction_menu_height = 10


"</span> ********** youcompleteme自动补全配置 ***********
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:ycm_global_ycm_extra_conf = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'~/.ycm_extra_conf.py'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"let g:ycm_python_binary_path = 'python'
set completeopt=longest,menu    "</span>让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
autocmd InsertLeave * <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> pumvisible() == <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>|pclose|endif <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"离开插入模式后自动关闭预览窗口
inoremap <expr> <CR>       pumvisible() ? "</span>\<C-y><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" : "</span>\<CR><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"    "</span>回车即选中当前项
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"上下左右键的行为 会显示其他信息
inoremap <expr> <Down>     pumvisible() ? "</span>\<C-n><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" : "</span>\<Down><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
inoremap <expr> <Up>       pumvisible() ? "</span>\<C-p><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" : "</span>\<Up><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
inoremap <expr> <PageDown> pumvisible() ? "</span>\<PageDown>\<C-p>\<C-n><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" : "</span>\<PageDown><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
inoremap <expr> <PageUp>   pumvisible() ? "</span>\<PageUp>\<C-p>\<C-n><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" : "</span>\<PageUp><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span> 跳转到定义处
nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
nnoremap <F6> :YcmForceCompileAndDiagnostics<CR>    <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"force recomile with syntastic
"</span> nnoremap <leader>lo :lopen<CR>    <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"open locationlist
"</span> nnoremap <leader>lc :lclose<CR>   <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"close locationlist
inoremap <leader><leader> <C-x><C-o>


"</span> 不显示开启vim时检查ycm_extra_conf文件的信息  
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:ycm_confirm_extra_conf=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 开启基于tag的补全,可以在这之后添加需要的标签路径  
let g:ycm_collect_identifiers_from_tags_files=1
"</span>注释和字符串中的文字也会被收入补全
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:ycm_collect_identifiers_from_comments_and_strings = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 输入第2个字符开始补全
let g:ycm_min_num_of_chars_for_completion=2
"</span> 禁止缓存匹配项,每次都重新生成匹配项
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:ycm_cache_omnifunc=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 开启语义补全
let g:ycm_seed_identifiers_with_syntax=1    
"</span>在注释输入中也能补全
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:ycm_complete_in_comments = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
"</span> 设置在下面几种格式的文件上屏蔽ycm
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:ycm_filetype_blacklist = {
      \ <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'tagbar'</span> : <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,
      \ <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'nerdtree'</span> : <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,
      \}
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"youcompleteme  默认tab  s-tab 和 ultisnips 冲突
let g:ycm_key_list_select_completion = ['<Down>']
let g:ycm_key_list_previous_completion = ['<Up>']
"</span> 修改对C函数的补全快捷键,默认是CTRL + space,修改为ALT + ;
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:ycm_key_invoke_completion = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'<M-;>'</span>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" SirVer/ultisnips 代码片断
"</span> Trigger configuration. Do <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> use <tab> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> you use <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">https</span>:<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">//gi</span>thub.com/Valloric/YouCompleteMe.
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:UltiSnipsExpandTrigger=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<tab>"</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:UltiSnipsJumpForwardTrigger=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<tab>"</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:UltiSnipsJumpBackwardTrigger=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<s-tab>"</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:UltiSnipsListSnippets=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<c-e>"</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"定义存放代码片段的文件夹,使用自定义和默认的,将会的到全局,有冲突的会提示
let g:UltiSnipsSnippetDirectories=["</span>~/.vim/bundle/vim-snippets/UltiSnips<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"]

"</span> 参考<span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">https</span>:<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">//gi</span>thub.com/Valloric/YouCompleteMe/issues/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">36</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#issuecomment-62941322</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 解决ultisnips和ycm tab冲突,如果不使用下面的办法解决可以参考
"</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">https</span>:<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">//gi</span>thub.com/Valloric/YouCompleteMe/issues/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">36</span><span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#issuecomment-63205056的配置</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" begin
"</span> <span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:ycm_key_list_select_completion=[<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'<C-n>'</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'<Down>'</span>]
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" let g:ycm_key_list_previous_completion=['<C-p>', '<Up>']
"</span> <span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:UltiSnipsExpandTrigger=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<Tab>"</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" let g:UltiSnipsJumpForwardTrigger="</span><Tab><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"                                           
"</span> <span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:UltiSnipsJumpBackwardTrigger=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<S-Tab>"</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" end
"</span> UltiSnips completion <span class="hljs-reserved" style="box-sizing: border-box;">function</span> that tries to expand a snippet. If there<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'s no
" snippet for expanding, it checks for completion window and if it'</span>s
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" shown, selects first element. If there's no completion window it tries to
"</span> jump to next placeholder. If there<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'s no placeholder it just returns TAB key 
function! g:UltiSnips_Complete()
    call UltiSnips#ExpandSnippet()
    if g:ulti_expand_res == 0
        if pumvisible()
            return "\<C-n>"
        else
            call UltiSnips#JumpForwards()
            if g:ulti_jump_forwards_res == 0
               return "\<TAB>"
            endif
        endif
    endif
    return ""
endfunction

au BufEnter * exec "inoremap <silent> " . g:UltiSnipsExpandTrigger . " <C-R>=g:UltiSnips_Complete()<cr>"

" Expand snippet or return
let g:ulti_expand_res = 1
function! Ulti_ExpandOrEnter()
    call UltiSnips#ExpandSnippet()
    if g:ulti_expand_res
        return '</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'
    else
        return "\<return>"
endfunction

" Set <space> as primary trigger
inoremap <return> <C-R>=Ulti_ExpandOrEnter()<CR>


" ********** indentLine插件 **********
let g:indentLine_char = '</span>┊<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'                                     "代码块对齐用┊符号


" *********** UltiSnips插件配置 **********
let g:UltiSnipsExpandTrigger="<tab>"
""let g:UltiSnipsJumpForwardTrigger="<tab>"
""let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
let g:UltiSnipsEditSplit = "vertical"
"let g:UltiSnipsSnippetDirectories = ["UltiSnips", "bundle/snippets"]
let g:UltiSnipsSnippetDirectories = ["bundle/snippets"]


" ********** rainbow_parentheses插件配置 ***********
let g:rbpt_colorpairs = [
            \ ['</span>brown<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',       '</span>RoyalBlue3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>Darkblue<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',    '</span>SeaGreen3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>darkgray<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',    '</span>DarkOrchid3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>darkgreen<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',   '</span>firebrick3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>darkcyan<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',    '</span>RoyalBlue3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>darkred<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',     '</span>SeaGreen3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>darkmagenta<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">', '</span>DarkOrchid3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>brown<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',       '</span>firebrick3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>gray<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',        '</span>RoyalBlue3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>black<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',       '</span>SeaGreen3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>darkred<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',     '</span>DarkOrchid3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>darkmagenta<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">', '</span>DarkOrchid3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>Darkblue<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',    '</span>firebrick3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>darkgreen<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',   '</span>RoyalBlue3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>darkcyan<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',    '</span>SeaGreen3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ['</span>red<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',         '</span>firebrick3<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'],
            \ ]
let g:rbpt_max = 16
let g:rbpt_loadcmd_toggle = 0
au VimEnter * RainbowParenthesesToggle
au Syntax * RainbowParenthesesLoadRound
au Syntax * RainbowParenthesesLoadSquare
au Syntax * RainbowParenthesesLoadBraces


" ********** vim-multiple-cursors插件配置 ***********
let g:multi_cursor_use_default_mapping=0
let g:multi_cursor_next_key='</span><C-m><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'
let g:multi_cursor_prev_key='</span><C-p><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'
let g:multi_cursor_skip_key='</span><C-x><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'
let g:multi_cursor_quit_key='</span><Esc><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'


" ********** airline插件配置 ***********
let g:airline_powerline_fonts=1     "配置airline使用powerline字体
"let g:airline#extensions#tabline#enabled = 1
"let g:airline#extensions#tabline#left_sep = '</span> <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'
"let g:airline#extensions#tabline#left_alt_sep = '</span>|<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'


" *********** vimwiki插件配置 ***********
"let g:vimwiki_list = [{'</span>path<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">' : '</span>~<span class="hljs-regexp" style="color: rgb(0, 136, 0); box-sizing: border-box;">/.vimwiki/</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">',
"        \'template_path'</span> : <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'~/.vimwiki/template/'</span>,
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        \'template_default' : 'default_template',
"</span>        \<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'template_ext'</span> : <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'.html'</span>,
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        \'path_html': '~/.vimwiki/html/'}
"</span>        \]


<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" ********** mru插件配置 **********
let MRU_Auto_Close = 1
let MRU_Max_Entries = 40


"</span> ************ pythom-mode *********
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:pymode_lint_on_write = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:pymode_lint_signs = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:pymode_rope_lookup_project = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:pymode_rope = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:pymode_floding = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>


<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" *********** 重新映射一些键 **********
"</span> 设置以空格打开和关闭折叠
nmap <space> @=((foldclosed(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'.'</span>))<<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>)?<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'zc'</span>:<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'zo'</span>)<CR>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 当一行很长时把分开的段行当作一行来移动
map j gj
map k gk

"</span> 将Esc键映射到jj,zz
im jj <Esc>
im JJ <Esc>
im zz <Esc>
im ZZ <Esc>
map zz <Esc>
map ZZ <Esc>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" quickfix相关的一些快捷键
map cop :copen<CR>
map ccl :cclose<CR>
map cn :cn<CR>
map cp :cp<CR>

"</span> emacs式的行内跳转
map <c-a> ^
map <c-e> $
imap <c-a> <Esc>^i
imap <c-e> <Esc>$a

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" ff跳转到文件末尾
map ff G

"</span> visual模式下快速对齐
vnoremap < <gv
vnoremap > >gv

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" <F3>关闭打开目录树
map <F3> :NERDTreeToggle<CR>
imap <F3> <ESC> :NERDTreeToggle<CR>
"</span> 打开树状文件目录
map <C-F3> \be

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" <F4>生成ctags
map <F4> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
im <F4> <Esc>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
nmap go g<C-]>
nmap bk <C-t>

nmap <C-_>s :cs find s <C-R>=expand("</span><cword><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")<CR><CR>
nmap <C-_>g :cs find g <C-R>=expand("</span><cword><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")<CR><CR>
nmap <C-_>c :cs find c <C-R>=expand("</span><cword><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")<CR><CR>
nmap <C-_>t :cs find t <C-R>=expand("</span><cword><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")<CR><CR>
nmap <C-_>e :cs find e <C-R>=expand("</span><cword><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")<CR><CR>
nmap <C-_>f :cs find f <C-R>=expand("</span><cfile><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")<CR><CR>
nmap <C-_>i :cs find i ^<C-R>=expand("</span><cfile><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")<CR>$<CR>
nmap <C-_>d :cs find d <C-R>=expand("</span><cword><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">")<CR><CR>

"</span> <F5>编译运行
:autocmd BufRead,BufNewFile *.dot map <F5> :w<CR>:!dot -Tjpg -o %<.jpg % && eog %<.jpg  <CR><CR> && exec <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"redr!"</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" C,C++ 按F5编译运行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
    exec "</span>w<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
    if &filetype == 'c'
        exec "</span>!g++ % -o %<<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
        exec "</span>!time ./%<<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
    elseif &filetype == 'cpp'
        exec "</span>!g++ % -o %<<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
        exec "</span>!time ./%<<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
    elseif &filetype == 'java'
        exec "</span>!javac %<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
        exec "</span>!time java %<<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
    elseif &filetype == 'sh'
        :!time bash %
    elseif &filetype == 'python'
        exec "</span>!time python2<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.7</span> %<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
    elseif &filetype == 'html'
        exec "</span>!firefox % &<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
    elseif &filetype == 'go'
    "</span>        exec <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"!go build %<"</span>
        exec <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"!time go run %"</span>
    elseif &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'mkd'</span>
        exec <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"!~/.vim/markdown.pl % > %.html &"</span>
        exec <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"!firefox %.html &"</span>
    endif
endfunc

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" C,C++的调试
map <F8> :call Rungdb()<CR>
func! Rungdb()
    exec "</span>w<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
    exec "</span>!g++ % -g -o %<<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
    exec "</span>!gdb ./%<<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
endfunc

"</span> <F6>语法检查
map <F6> :SyntasticCheck<CR>
im <F6> <Esc>:SyntasticCheck<CR>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span> 代码格式优化化
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"map <F6> :call FormartSrc()<CR><CR>
"</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 定义FormartSrc()
"</span>func FormartSrc()
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"    exec "</span>w<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span>    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'c'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        exec "</span>!astyle --style=ansi -a --suffix=none %<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span>    elseif &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'cpp'</span> || &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'hpp'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        exec "</span>r !astyle --style=ansi --one-line=keep-statements -a --suffix=none %> /dev/<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">null</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>>&<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span>    elseif &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'perl'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        exec "</span>!astyle --style=gnu --suffix=none %<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span>    elseif &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'py'</span>||&filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'python'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        exec "</span>r !autopep8 -i --aggressive %<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span>    elseif &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'java'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        exec "</span>!astyle --style=java --suffix=none %<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span>    elseif &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'jsp'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        exec "</span>!astyle --style=gnu --suffix=none %<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span>    elseif &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'xml'</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        exec "</span>!astyle --style=gnu --suffix=none %<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span>    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"        exec "</span>normal gg=G<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span>        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">return</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"    endif
"</span>    exec <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"e! %"</span>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"endfunc

"</span> <F7>更新cscope文件
map <F7> :!cscope -Rbq<CR>
im <F7> <Esc>:!cscope -Rbq<CR>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 修改<leader>的键盘映射
nmap ' <leader>
"</span> 当按下\+Enter时取消搜索高亮
map <silent> <leader><CR> :noh<CR>

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" Unite插件配置
map <Leader>b :Unite -winheight=10 buffer<CR>
map <Leader>r :MRU<CR>
map <leader>f :NERDTreeToggle<CR>

"</span> Tagbar插件配置
<span class="hljs-reserved" style="box-sizing: border-box;">let</span> <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">g</span>:tagbar_autoclose=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
map <leader>t :TagbarToggle<CR>
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 设置文件类型辅助
map <leader>s :setfiletype
"</span> 更方便的窗口间跳转
map <leader>j <c-w>j
map <leader>k <c-w>k
map <leader>l <c-w>l
map <leader>h <c-w>h
map <C-j> <c-w>j
map <C-k> <c-w>k
map <C-l> <c-w>l
map <C-h> <c-w>h

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" vimux插件配置
map <Leader>e :VimuxPromptCommand<CR>
map <Leader>x :VimuxCloseRunner<CR>
map <Leader>vl :VimuxRunLastCommand<CR>
map <Leader>vi :VimuxInspectRunner<CR>
"</span> 更方便的页滚动
map <C-j> <C-f>
map <C-k> <C-b>

map ,,j <Plug>(easymotion-w)
map ,,k <Plug>(easymotion-b)
map ,,s <Plug>(easymotion-s)


<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"********** 新建.c,.h,.sh,.java文件,自动插入文件头 **********
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.rb,*.java,*.py exec "</span>:call SetHead()<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"
"</span><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 定义函数SetHead,自动插入文件头
func! SetHead()
    if &filetype == 'sh'
        call setline(1,"</span>\<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">#!/bin/bash")</span>
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>), <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>)
    elseif &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'python'</span>
        call setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"#!/usr/bin/env python"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>),<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"# -*- coding=utf-8 -*-"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>)
    elseif &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'ruby'</span>
        call setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"#!/usr/bin/env ruby"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>),<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"# encoding: utf-8"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>)
<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"    elseif &filetype == 'mkd'
"</span>        call setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"<head><meta charset=\"UTF-8\"></head>"</span>)
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>
        call setline(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/*************************************************************************"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>), <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"    > File Name: "</span>.expand(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%"</span>))
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"  > Author: "</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"  > Mail: "</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"  > Created Time: "</span>.strftime(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%c"</span>))
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" ************************************************************************/"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>)
    endif

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> expand(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%:e"</span>) == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'cpp'</span>
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"#include<iostream>"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"using namespace std;"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>)
    endif

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'c'</span>
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"#include<stdio.h>"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>)
    endif

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> expand(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%:e"</span>) == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'h'</span>
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"#ifndef _"</span>.toupper(expand(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%:r"</span>)).<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"_H"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"#define _"</span>.toupper(expand(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%:r"</span>)).<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"_H"</span>)
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span>, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"#endif"</span>)
    endif

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> &filetype == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'java'</span>
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"public class "</span>.expand(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%:r"</span>))
        call append(line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"."</span>)+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span>,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">""</span>)
    endif
    <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 新建文件后,自动定位到文件末尾
endfunc
autocmd BufNewFile * normal G


"</span> ********* 实用设置 *********
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> has(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"autocmd"</span>)
      autocmd BufReadPost *
          \ <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"'\""</span>) > <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span> && line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"'\""</span>) <= line(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"$"</span>) |
          \   exe <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"normal g`\""</span> |
          \ endif
endif

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" 当打开vim且没有文件时自动打开NERDTree
autocmd vimenter * if !argc() | NERDTree | endif
"</span> 只剩 NERDTree时自动关闭
autocmd bufenter * <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> (winnr(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"$"</span>) == <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> && exists(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"b:NERDTreeType"</span>) && <span class="hljs-attribute" style="box-sizing: border-box; color: rgb(0, 136, 0);">b</span>:NERDTreeType == <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"primary"</span>) | q | endif

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">" quickfix模式
autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr></span></code>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值