8

引言

Vim 无疑是世界上最好用的编辑器之一(为了不引起战争 →_→)。在广大程序员用 Vim 敲代码的过程中,代码补全功能能够大大提高生产力,尤其是对于从各种 IDE 转到 Vim 的程序员来说更是福音般地存在。本文将介绍一种推荐的代码补全工具 YouCompleteMe,并且一步步介绍它的安装方式。

YouCompleteMe

YouCompleteMe 是一个比较完备,并且正在日渐完备的 Vim 代码补全插件。它的功能十分强大,支持自动补全的语言包括:

  • C/C++/Objective-C/Objective-C++ (基于 Clang)
  • Python (基于 Jedi)
  • C# (基于 OmniSharp)
  • Go (基于 GoCode)
  • 其他 Vim 的 omnicomplete system 支持的语言,比如 (Ruby, PHP 等)

先上一张作者给的 demo 效果图。

效果图

安装

接下来介绍安装过程。

确定 Vim 版本满足支持

如果你用的是 Mac OS X 自带的 vim 的话,那么肯定是不能满足需求的。首先,需要升级 vim。这里建议安装 macvim,当然 vim 的官网也是这么推荐的。推荐使用 brew 来安装。

  1. MacVim 依赖 Xcode,首先需要在 App Store 中安装 Xcode。如果是全新安装的 Xcode,请打开一次,并且同意 license。
  2. 使用 brew 安装 MacVim

    bashbrew install macvim
    
  3. 使用 MacVim 替换系统自带的 Vim,在当前 shell 的配置文件中添加

    bashalias vim='mvim -v'
    

安装 Vundle

Vundle (缩写自 Vim bundle) 是一个很方便的 Vim 插件管理器。它的使用方法很简单,安装一个插件只需要在 .vimrc 按照规则中添加 Plugin 的名称,某些需要添加路径,之后在 Vim 中使用 :PluginInstall 既可以自动化安装。具体的使用过方法详见官网

下面将介绍 Vundle 的安装及基本配置。

  1. 使用 git 克隆 Vundle 工程到本地。

    bashgit clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
    
  2. 修改 .vimrc 配置 Plugins。在 .vimrc 文件中添加如下内容。

    set nocompatible
    filetype off
    
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()
    
    Plugin 'gmarik/Vundle.vim'
    
    call vundle#end()
    filetype plugin indent on
    

安装 YouCompleteMe

接下来将要安装的是我们的主角,YouCompleteMe。解决了上面的依赖软件之后,安装它将变得非常简单。

  1. .vimrc 中添加如下内容。位置在 call vundle#begin()call vundle#end() 之间。

    Bundle 'Valloric/YouCompleteMe'
    
  2. 编译 YouCompleteMe

    首先说明,编译过程需要 CMake,可以使用 brew来安装。

    bashbrew install CMake
    
    • 带 C-family languages 语义支持的版本
    bashcd ~/.vim/bundle/YouCompleteMe
    ./install.sh --clang-completer
    
    • 不带 C-family languages 语义支持的版本
    bashcd ~/.vim/bundle/YouCompleteMe
    ./install.sh --clang-completer
    
    • 带 C# 语义支持的版本
    bashcd ~/.vim/bundle/YouCompleteMe
    ./install.sh --omnisharp-completer
    
    • 带 Go 语言语义支持的版本
    bashcd ~/.vim/bundle/YouCompleteMe
    ./install.sh --gocode-completer
    

完成

至此,我们已经拥有了 YouCompleteMe 这款自动补全神器。请尽情享用。

Just enjoy it !


冰雪殿
551 声望24 粉丝