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就变得无比强大绚丽了,看截图
以下是我的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>