vim添加插件

vim添加Vundel插件管理器:

1
2
mkdir ~/.vim/bundle
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

编辑~/.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
"Vundle
"去除VI一致性
set nocompatible
filetype off
"设置Vundle的运行路径
set rtp+=~/.vim/bundle/Vundle.vim
"设置插件的安装路径,vundle插件起始标志
call vundle#begin()
"让vundle管理插件版本
Plugin 'VundleVim/Vundle.vim'
"设置插件的安装路径,vundle插件结束标志
call vundle#end()
"加载vim自带和插件相应的语法和文件类型相关脚本
filetype plugin indent on

set encoding=utf-8 "设置utf-8编码
"set number "显示行号
syntax on "开启语法高亮
set background=dark "设置背景色
set showmatch "显示匹配的括号
set backspace=2 "可以删除任意值
set scrolloff=5 "距离顶部和底部5行
set laststatus=2 "命令行为两行
set fenc=utf-8 "文件编码

打开vim,按:输入:PluginInstall进行安装,提示done时表示安装完成。

安装其它插件也是如此,把要安装的插件加入到~/.vimrc,输入:PluginInstall进行安装。

我的.vimrc文件内容在下面,加入了以下插件:

  • nerdtree 目录树插件
  • YouCompleteMe 代码补全插件
  • scrooloose/syntastic Python语法检测
  • nvie/vim-flake8 Python PEP8代码风格检查
  • tmhedberg/SimpylFold 代码折叠插件
  • zxqfl/tabnine-vim 代码AI补全,基于YouCompleteMe
    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
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    "Vundle
    "去除VI一致性
    set nocompatible
    filetype off
    "设置Vundle的运行路径
    set rtp+=~/.vim/bundle/Vundle.vim
    "设置插件的安装路径,vundle插件起始标志
    call vundle#begin()
    "让vundle管理插件版本
    Plugin 'VundleVim/Vundle.vim'
    "设置插件的安装路径,vundle插件结束标志
    call vundle#end()
    "加载vim自带和插件相应的语法和文件类型相关脚本
    filetype plugin indent on

    set encoding=utf-8 "设置utf-8编码
    "set number "显示行号
    syntax on "开启语法高亮
    set background=dark "设置背景色
    set showmatch "显示匹配的括号
    set backspace=2 "可以删除任意值
    set scrolloff=5 "距离顶部和底部5行
    set laststatus=2 "命令行为两行
    set fenc=utf-8 "文件编码

    "Python
    set filetype=python
    au BufNewFile,BufRead .py,.pyw setf python
    set autoindent "设置自动缩进
    set smartindent "自动下一行缩进
    "set textwidth=99 "行最大宽度
    set expandtab "tab替换为空格键
    set tabstop=4 "设置table长度
    set softtabstop=4 "软制表符宽度为4
    set shiftwidth=4 "设置缩进的空格数为4
    set fileformat=unix "设置以unix的格式保存文件

    "vim中F5直接调试
    map <F5> :call RunPython()<CR>
    func! RunPython()
    exec "w"
    if &filetype == 'python' "第一行#!/bin/python 运行python编译器
    exec "!time python %"
    elseif &filetype == 'sh' "第一行#!/bin/bash 运行shell编译器
    :!time bash %
    endif
    endfunc


    "-------------------------- 插件 ------------------------

    "添加nerdtree
    Bundle 'scrooloose/nerdtree'
    "设置按F2启动NerdTree
    map <F2> :NERDTreeToggle<CR>
    "隐藏目录树中的.pyc文件
    let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree


    "添加YouCompleteMe代码补全插件
    Plugin 'Valloric/YouCompleteMe'
    let g:ycm_server_python_interpreter='/usr/bin/python'
    let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'
    "youcompleteme 默认tab s-tab 和自动补全冲突
    "let g:ycm_key_list_select_completion=['<c-n>']
    "let g:ycm_key_list_select_completion = ['<Down>']
    "let g:ycm_key_list_previous_completion=['<c-p>']
    "let g:ycm_key_list_previous_completion = ['<Up>']
    ""关闭加载.ycm_extra_conf.py提示
    let g:ycm_confirm_extra_conf=0
    " 开启 YCM 基于标签引擎
    let g:ycm_collect_identifiers_from_tags_files=1
    " " 从第2个键入字符就开始罗列匹配项
    let g:ycm_min_num_of_chars_for_completion=2
    " " 禁止缓存匹配项,每次都重新生成匹配项
    let g:ycm_cache_omnifunc=0
    " " 语法关键字补全
    let g:ycm_seed_identifiers_with_syntax=1
    " "force recomile with syntastic
    nnoremap <F5> :YcmForceCompileAndDiagnostics<CR>
    " "nnoremap <leader>lo :lopen<CR> "open locationlist
    " "nnoremap <leader>lc :lclose<CR> "close locationlist
    inoremap <leader><leader> <C-x><C-o>
    " "在注释输入中也能补全
    let g:ycm_complete_in_comments = 1
    " "在字符串输入中也能补全
    let g:ycm_complete_in_strings = 1
    " "注释和字符串中的文字也会被收入补全
    let g:ycm_collect_identifiers_from_comments_and_strings = 0

    "python语法检测
    Plugin 'scrooloose/syntastic'
    "添加PEP8代码风格检查
    Plugin 'nvie/vim-flake8'

    "代码折叠插件
    Plugin 'tmhedberg/SimpylFold'
    "开启代码折叠
    set foldmethod=indent
    set foldlevel=99
    ""设置快捷键为空格
    noremap <space> za
    "显示折叠代码的文档字符串
    let g:SimpylFold_docstring_preview=1

    "AI 补全, 基于YouCompleteMe"
    Plugin 'zxqfl/tabnine-vim'

如果要用我的配置,直接复制到你的~/.vimrc文件再执行:PluginInstall就可直接安装(记得备份)。

安装时可能有点久,需要耐心点。

同时安装YouCompleteMe后会报The ycmd server SHUT DOWN的错误,需要进行如下操作:

1
2
3
cd ~/.vim/bundle/YouCompleteMe/
sudo yum install -y cmake pytho-devel
./install.py

后续添加

添加自动安装插件

安装pathogen,作用是在vim启动时自动安装放置在~/.vim/bundle目录的插件:

1
mkdir ~/.vim/autoload

下载vim-pathogen~/.vim/autoload目录下:

1
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

编辑~/.vimrc,添加:

1
2
3
execute pathogen#infect()
syntax on
filetype plugin indent on

启动vim即完成。

添加Golang代码提示插件

YouCompleteMe也能补全部分Golang代码,但是没有Golang模块函数自动提示,为了添加这部分功能,需要添加gocode插件,记得需要先装前面的pathogen插件。

首先设置好Golang代理、环境变量,修改~/.bash_profile,每个人的环境不一定一样,自己看着修改:

1
2
3
4
5
6
PATH=$PATH:$HOME/go/bin
GOPATH="$HOME/go"
export PATH
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
export GOBIN=$GOPATH/bin

新开连接终端或source ~/.bash_profile生效

安装gocode:

1
go get github.com/nsf/gocode

如果上面设置PATH生效的话,使用gocode -h能看到使用说明

再进入~/.vim/bundle安装vim插件就完成:

1
2
cd ~/.vim/bundle
git clone https://github.com/Blackrush/vim-gocode.git

最终编辑Golang文件的效果:
vim效果图


- - END - -


腾讯云
0%