• vim/GVim安装配置
    • 我的vim截图
    • 使用vundle
      • linux or OS X
      • windows
    • 启用rust支持
      • 下载源码
      • 修改vim配置
      • 更多的配置
        • 使用 YouCompleteMe
    • 总结
      • 额外的

    vim/GVim安装配置

    本节介绍vim的Rust支持配置,在阅读本节之前,我们假定你已经拥有了一个可执行的rustc程序,并编译好了racer。

    我的vim截图

    应邀而加

    此处应该有截图

    使用vundle

    vundle是vim的一个插件管理工具,基本上算是本类当中最为易用的了。
    首先我们需要安装它

    linux or OS X

    1. mkdir -p ~/.vim/bundle/
    2. git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

    windows

    1. 首先找到你的gvim的安装路径,然后在路径下找到vimfiles文件夹
    2. 在这个文件夹中将vundle库克隆到vimfiles/bundle/目录下的Vundle.vim文件夹中

    启用rust支持

    下载源码

    首先,你需要下载rust-lang的源码文件,并将其解压到一个路径下。
    这个源码文件我们可以从rust官网下载到,请下载你对应平台的文件。
    然后将其解压到一个目录下,并找到其源码文件中的src目录。
    比如我们解压源码包到C:\\rust-source\,那么我们需要的路径就是C:\\rust-source\src,记好这个路径,我们将在下一步用到它。

    修改vim配置

    首先找到你的vimrc配置文件,然后在其中添加如下配置

    1. set nocompatible
    2. filetype off
    3. set rtp+=~/.vim/bundle/Vundle.vim
    4. call vundle#begin()
    5. Plugin 'VundleVim/Vundle.vim'
    6. Plugin 'racer-rust/vim-racer'
    7. Plugin 'rust-lang/rust.vim'
    8. call vundle#end()
    9. filetype on

    然后为了让配置生效,我们重启我们的(g)vim,然后在vim里执行如下命令

    1. :PluginInstall

    这里vundle会自动的去仓库里拉取我们需要的文件,这里主要是vim-racer和rust.vim两个库。

    更多的配置

    为了让我们的vim能正常的使用,我们还需要在vimrc配置文件里加入一系列配置,

    1. "" 开启rust的自动reformat的功能
    2. let g:rustfmt_autosave = 1
    3. "" 手动补全和定义跳转
    4. set hidden
    5. "" 这一行指的是你编译出来的racer所在的路径
    6. let g:racer_cmd = "<path-to-racer>/target/release/racer"
    7. "" 这里填写的就是我们在1.2.1中让你记住的目录
    8. let $RUST_SRC_PATH="<path-to-rust-srcdir>/src/"

    使用 YouCompleteMe

    YouCompleteMe 是 vim 下的智能补全插件, 支持 C-family, Python, Rust 等的语法补全, 整合了多种插件, 功能强大. Linux 各发行版的官方源里基本都有软件包, 可直接安装. 如果有需要进行编译安装的话, 可参考官方教程

    让 YCM 支持 Rust 需要在安装 YCM 过程中执行 ./install.py 时加上 —racer-completer, 并在 .vimrc 中添加如下设置

    1. let g:ycm_rust_src_path="<path-to-rust-srcdir>/src/"
    2. "" 一些方便的快捷键
    3. """ 在 Normal 模式下, 敲 <leader>jd 跳转到定义或声明(支持跨文件)
    4. nnoremap <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
    5. """ Insert 模式下, <leader>; 补全
    6. inoremap <leader>; <C-x><C-o>

    总结

    经过不多的配置,我们得到了如下功能:

    1. 基本的c-x c-o补全 (使用 YCM 后, 能做到自动补全)
    2. 语法着色
    3. gd跳转到定义

    总体来看支持度并不高。

    此处应该有第二张截图

    额外的

    Q1. 颜色好挫

    A1. 我推荐一个配色,也是我自己用的 molokai

    更详细内容可以参见我的vimrc配置,当然,我这个用的是比较老的版本的vundle,仅供参考。

    Have a nice Rust !