vim安装

编译安装vim

下载依赖

sudo apt-get install libncurses5-dev libgnome2-dev libgnomeui-dev \
    libgtk2.0-dev libatk1.0-dev libbonoboui2-dev \
    libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev \
    python3-dev ruby-dev liblua5.1 lua5.1-dev libperl-dev git

克隆vim

git clone https://github.com/vim/vim.git

删除旧的vim

dpkg -l | grep vim   #查询是否含有旧的vim
sudo apt-get remove vim-common vim-tiny   		#删除旧的vim

编译安装

配置安装

./configure --with-features=huge --enable-python3interp --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ --enable-rubyinterp --enable-luainterp --enable-perlinterp --with-python3-config-dir=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/ --enable-multibyte --enable-cscope      --prefix=/usr/local/vim/

下面是参数解释

–with-features=huge:支持最大特性
–enable-rubyinterp:打开对ruby编写的插件的支持
–enable-pythoninterp:打开对python编写的插件的支持
–enable-python3interp:打开对python3编写的插件的支持
–enable-luainterp:打开对lua编写的插件的支持
–enable-perlinterp:打开对perl编写的插件的支持
–enable-multibyte:打开多字节支持,可以在Vim中输入中文
–enable-cscope:打开对cscope的支持
–with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ 指定python 路径
–with-python-config-dir=/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/指定python3路径


–prefix=/usr/local/vim:指定将要安装到的路径(自行创建)

然后进行make安装

make && sudo make install

YCM编译安装

获取ycm

通过vundle获取
在vimrc中添加

set rtp+=~/.vim/bundle/Vundle.vim           #指定vundle路径
call vundle#begin()
Plugin 'Valloric/YouCompleteMe'
call vundle#end()

通过git安装

git clone --recursive https://github.com/Valloric/YouCompleteMe.git 获取最新的仓库
使用git submodule update --init --recursive确认仓库的完整性

安装依赖

安装cmake,这是编译安装ycm_core所需工具,ycm_core是用来快速获得C++的引擎
安装python-dev,python3-dev,

在编译安装前,在/tmp目录下创建一个ycm_build,用于放置ycm的编译结果,以便等下安装

cd /tmp
mkdir ycm_build
cd ycm_build

生成makefile文件

  1. 如果不需要C族语言的语义支持,在ycm_build目录下执行
    cmake -G "Unix Makefiles" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp #后面的是你的ycm目录

  2. 如果需要C族语言的语义支持,有三种安装方式
    1. 从llvm的官网下载了LLVM+Clang的二进制包,然后解压到一个目录/tmp/ycm_tmpe
      该目录下有bin, lib, include等文件夹
      然后执行
      cmake -G "Unix Makefiles" -DPATH_TO_LLVM_ROOT=/tmp/ycm_tmpe . ~/. vim/bundle/YouCompleteMe/third_party/ycmd/cpp

    2. 如果想用系统的libclang:
      cmake -G "Unix Makefiles" -DUSE_SYSTEM_LIBCLANG=ON . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp

    3. 如果想用自定义的libclang:
      cmake -G "Unix Makefiles" -DEXTERNAL_LIBCLANG_PATH=/path/to/libclang.so . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
      其中/path/to/libclang.so是你系统下的clang路径

生成ycm_core

cmake --build . --target ycm_core --config Release

进入ycm目录安装

cd ~/.vim/bundle/YouCompleteMe/
python ./install.py --clang-completer

配置.vimrc

复制.ycm_extra_conf.py文件

cp ~/.vim/bundle/YouCompleteMe/third_party/.ycm_extra_conf.py ~/.vim/
""""""""""""""""""""""""""""
" YouCompleteMe
" """""""""""""""""""""""""
let g:ycm_server_python_interpreter='/usr/bin/python2'			"你的python目录
let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py'		"你的ycm配置目录
autocmd InsertLeave * if pumvisible() == 0|pclose|endif "离开插入模式后自动关闭预览窗口"
let g:ycm_collect_identifiers_from_tags_files = 1           " 开启 YCM基于标签引擎
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释与字符串中的内容也用于补全
let g:syntastic_ignore_files=[".*\.py$"]
let g:ycm_seed_identifiers_with_syntax = 1                  " 语法关键字补全
let g:ycm_complete_in_comments = 1
let g:ycm_confirm_extra_conf = 0                            " 关闭加载.ycm_extra_conf.py提示
let g:ycm_key_list_select_completion = ['<m-n>', '<Down>']  " 映射按键,没有这个会拦截掉tab, 导致其他插件的tab不能用.
let g:ycm_key_list_previous_completion = ['<m-p>', '<Up>']
let g:ycm_complete_in_comments = 1                          " 在注释输入中也能补全
let g:ycm_complete_in_strings = 1                           " 在字符串输入中也能补全
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 注释和字符串中的文字也会被收入补全
"let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
let g:ycm_show_diagnostics_ui = 1                           " 语法检查
"inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>"             " 回车即选中当前项
nnoremap <c-O> :YcmCompleter GoToDefinitionElseDeclaration<CR>     " 跳转到定义处
let g:ycm_min_num_of_chars_for_completion=2                 " 从第2个键入字符就开始罗列匹配项
let g:ycm_warning_symbol = 'O'                              "设置警告字符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值