基本设置

配置~/.vimrc内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
set backspace=indent,eol,start
syn on "语法高亮
set helplang=cn "使用中文帮助文档
set backspace=2
set tabstop=4 "制表符的宽度
set softtabstop=4
set shiftwidth=4 "缩进的空格
set autoindent "自动缩进
set cindent "C 插件
set number "设置行号
set ignorecase "忽略大小写 (查找字符串时)
set nohlsearch "高亮显示 (查找字符串是,找到后高亮显示)
set mouse=a "使用鼠标
set ruler "在右下角显示光标位置
set showcmd "显示未敲完的命令
set cmdheight=1 "设定命令行的行数为 1
set laststatus=2 "显示状态栏 (默认值为 1, 无法显示状态栏)
set incsearch "在输入搜索的字符串同时就开始搜索已经输入的部分
"set nowrap "一行就一行,别弄到第二行去
set sidescroll=10 "屏幕放不下时,按一次屏幕移动一个字符
set whichwrap=b,s,<,>,[,] "跨行移动
set fileformats=unix,dos
set cursorline "突出显示当前行
set showmatch "插入括号时,短暂地跳转到匹配的对应括号
set matchtime=2 "短暂跳转到匹配括号的时间
set smartindent "开启新行时使用智能自动缩进
filetype plugin indent on "自动识别文件类型,用文件类型plugin脚本,使用缩进定义文件
"set autochdir

插件

Vundle是vim的一个插件管理器, 同时它本身也是vim的一个插件。
插件管理器用于方便 & 快速的安装、删除、更新插件。
Vim Vundle插件官方地址i

Vim7.4及以上配置
Vim代码补全插件YouCompleteMe配置

安装 Vundle

官方文档
1.由于 vim 缺乏默认的插件管理器,所有插件的文件都散布在 ~/.vim 下的几个文件夹中,这样导致各种插件的安装、更新、删除都需要自己手动处理,既麻烦费事,又可能出现错误。
所以我们需要插件管理器的帮忙,常见的插件管理器有 vundle、pathogen 等,推荐使用 Vundle。
Vundle 托管在 Github 上,将其检出并存放于 ~/.vim/Plugin 目录下。
使用如下命令直接将源代码检出到该目录:

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

2.下载完了 Vundle 后,还需要进行插件配置。

插件配置

为了不让 .vimrc 看起来太臃肿,可以新建一个 ~/.vimplugins 文件来保存所有插件的配置。先在 ~/.vimplugins 文件中包含如下内容:
先在 ~/.vimrc 文件中加入内容:

1
2
3
if filereadable(expand("~/.vimplugins"))
source ~/.vimplugins
endif

再往 ~/.vimplugins 中添加配置项和插件。

我们需要知道,Plugin 分为三类:
Type 1: 在 Github 其他用户下的 repos,需要写出“用户名/repos名”
Type 2: 在 Github vim-scripts 用户下的 repos,只需要写出 repos 名称
Type 3: 不在 Github 上的插件,需要写出 git 全路径

比较常用就是第一种,也就是以“用户名/repos名”的方式。

以下是~/.vimplugins文件配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
set nocompatible              " be iMproved, required
filetype off " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/Plugin/Vundle.vim
call vundle#begin()

" Keep Plugin commands between vundle#begin/end.

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

" Type1: plugin on GitHub repo
Plugin 'tpope/vim-fugitive'

" Type2: plugin from http://vim-scripts.org/vim/scripts.html
" Plugin 'L9'

" Type3: Git plugin not hosted on GitHub
Plugin 'git://git.wincent.com/command-t.git'

" The sparkup vim script is in a subdirectory of this repo called vim.
" Pass the path to set the runtimepath properly.
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}

" Install L9 and avoid a Naming conflict if you've already installed a
" different version somewhere else.
" Plugin 'ascenator/L9', {'name': 'newL9'}

Plugin 'christoomey/vim-run-interactive'

" 补全插件
Plugin 'SuperTab'

" 语法检查插件
Plugin 'Syntastic'

Plugin 'croaky/vim-colors-github'
Plugin 'danro/rename.vim'
Plugin 'majutsushi/tagbar'
Plugin 'kchmck/vim-coffee-script'
Plugin 'kien/ctrlp.vim'
Plugin 'pbrisbin/vim-mkdir'
Plugin 'scrooloose/syntastic'
Plugin 'slim-template/vim-slim'
Plugin 'thoughtbot/vim-rspec'
Plugin 'tpope/vim-endwise'
Plugin 'tpope/vim-rails'
Plugin 'tpope/vim-surround'
Plugin 'vim-ruby/vim-ruby'
Plugin 'vim-scripts/ctags.vim'
Plugin 'vim-scripts/matchit.zip'
Plugin 'vim-scripts/tComment'
Plugin 'mattn/emmet-vim'
Plugin 'scrooloose/nerdtree'
Plugin 'Lokaltog/vim-powerline'
Plugin 'godlygeek/tabular'
Plugin 'msanders/snipmate.vim'
Plugin 'jelera/vim-javascript-syntax'
Plugin 'altercation/vim-colors-solarized'
Plugin 'othree/html5.vim'
Plugin 'xsbeats/vim-blade'
Plugin 'Raimondi/delimitMate'
Plugin 'groenewege/vim-less'
Plugin 'Lokaltog/vim-easymotion'
Plugin 'tomasr/molokai'
Plugin 'klen/python-mode'

" All of your Plugins must be added before the following line
call vundle#end() " required
filetype plugin indent on " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList - lists configured plugins
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
"
" see :h vundle for more details or wiki for FAQ
" Put your non-Plugin stuff after this line

这样 Vundle 就准备就绪了。

出错提示

如果在安装完插件后启动 vim 出现如下提示,则说明你的 vim 需要升级。

1
YouCompleteMe unavailable: requires Vim 7.4.1578+.

如果在安装完插件后启动 vim 出现如下提示,则说明你的 vim 需要重新编译以支持 Python。

1
YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+) support

编译指定版本 python 支持的 vim

再次使用 vim 编辑文件,如果出现下面警告:

1
YouCompleteMe unavailable: requires Vim compiled with Python (2.6+ or 3.3+) support

那么需要你的VIM有Python的支持,这个是在一开始编译的选项里指定的。查看 vim 是否有 python 支持的具体操作如下:

1
$ vim --version |grep python

如果结果如下:

1
2
+cryptv +linebreak -python +viminfo
-cscope +lispindent -python3 +vreplace

说明没有 python 支持。openSUSE 默认源里的 vim 是没有编译入 Python 2 支持的,所以得手动编译。

解决方案是重新编译,加入–enable-pythoninterp=yes参数。
如果想开启Python3支持,则–enable-python3interp=yes。
所以最终的编译选项是:

1
$ ./configure --enable-pythoninterp=yes