ubuntu环境下打造vim编辑器

插件管理

1、vim-plug的安装
在这里,我使用的是vim-plug对插件进行管理,在linux安装命令如下:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

如果在执行上面的命令出现下面的错误时,需要手动的去配置解析地址,
在这里插入图片描述
此处获得解析地址,然后将地址写入到/etc/hosts文件中。如下图
在这里插入图片描述
然后再次执行上面的命令,就能执行成功。
在这里插入图片描述
2、vim-plug配置介绍
使用vim-plug安装vim插件的方法与另外一个著名的vim插件管理器Vundle非常相似,只需要在vim配置文件 ~/.vimrc 增加以 call plug#begin(PLUGIN_DIRECTORY) 开始,并以 plug#end() 结束的配置段即可。

下面是一个典型的vim-plug的配置实例,使用了多种vim-plug相关的配置形式。

call plug#begin('~/.vim/plugged')
Plug 'junegunn/vim-easy-align'
Plug 'https://github.com/junegunn/vim-github-dashboard.git'
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
Plug 'scrooloose/nerdtree', { 'on':  'NERDTreeToggle' }
Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug '~/my-prototype-plugin'
call plug#end()

在上面的vim-plug配置中,以 call plug#begin('~/.vim/plugged') 标识vim-plug配置的开始并显式指定vim插件的存放路径为 ~/.vim/plugged;

Plug 'junegunn/vim-easy-align' 使用缩写形式指定了插件在github的地址 (https://github.com/junegunn/vim-easy-align);

Plug 'https://github.com/junegunn/vim-github-dashboard.git' 则用完整的URL指定插件在github的位置;

Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' 用 | 将两个vim插件写在同一行配置中;

Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } 使用 按需加载,表明只有在 NERDTreeToggle 命令被调用时, 对应的插件才会被加载;

Plug 'tpope/vim-fireplace', { 'for': 'clojure' } 使用 按需加载,表明只有编辑 clojure 类型的文件时该插件才会被打开;

Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } 显式指定使用YCM-Generator插件的 stable 分支;

Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' } 指定插件所用git标签,rtp描述了包含vim插件的子目录;

Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } 用 dir 选项单独指定了该插件存放的目录,do选项用于 Post-update hook,指定在安装或者更新完插件后所需要执行的额外操作;

Plug '~/my-prototype-plugin' 表示不用github托管的本地vim插件;

call plug#end() 用于标识vim-plug配置的结束。

3、使用vim-plug安装vim插件
在Vim命令行模式下,使用命令 :PlugInstall 可安装vim配置文件中所有配置的vim插件;也可以使用 PlugInstall [name ...] 来指定安装某一个或某几个vim插件。
:PlugStatus 可查看vim插件的当前状态,:PlugUpdate [name ...] 用于安装或更新对应vim插件,而vim-plug本身的更新则使用命令 :PlugUpgrade

YCM插件

YCM插件能让vim像那些IDE一样自动补全代码,跳转等等,它通过预先编译,根据编译的结果来推测需要补全的内容。
在运行安装脚本之前,需要解决一些依赖问题,具体如下:

确保vim版本在7.4.1578以上。通过vim --version来查看。ubuntu18默认为vim8.1。
确保vim对python和python3的支持。也通过vim --version来查看,在python和python3前面有加号,说明已经支持了。
ubuntu18默认安装python3,且vim支持python3,但是未安装python且vim不支持python2,因此需要安装python2且从源码重新编译vim。
安装python2的时候,需要从源码进行安装,并进行额外配置。

mkdir python2-source && cd python2-source
wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz
tar -xvf Python-2.7.15.tgz
cd Python-2.7.15/
sudo apt install zlib1g-dev  # YCM需要zlib库支持
./configure --with-zlib --enable-shared --enable-unicode=ucs2
make -j
sudo make install

安装完python2,还需要python中的urllib3。

pip install urllib3 --user

接下来重新编译安装vim,使其支持python和python3

sudo apt purge --auto-remove vim  # 卸载现有vim
sudo apt install python-dev python3-dev
git clone https://github.com/vim/vim.git
cd vim
./configure --with-features=huge \ 
--enable-python3interp \
--enable-pythoninterp \
--enable-perlinterp \
--enable-multibyte \
--enable-cscope \
--with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ \
--with-python-config-dir=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/ \
--prefix=/usr/local/vim  # vim安装位置
make -j
sudo make install
export PATH="$PATH:/usr/local/vim/bin  # 加入vim可执行文件的路径

安装剩余依赖库

sudo apt install build-essential cmake
sudo apt install clang libclang-dev  # clang库帮助实现语义支持

YCM很大,而且国内与GitHub间的连接不稳定,所以这个过程可能会持续很久尝试很多次,成功下载完之后进入目录 ~/.vim/plugged/YouCompleteMe

 python3 install.py --clang-complete

到此,YCM安装完成

最后在~/.vim文件中添加下面一行

let g:ycm_global_ycm_extra_conf='~/.vim/plugged/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py'

下面是一个截图
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值