当前位置: 首页 > 文档资料 > RustPrimer 中文版 >

编辑器 - vim

优质
小牛编辑
143浏览
2023-12-01

本节介绍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-sourcesrc,记好这个路径,我们将在下一步用到它。

修改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 !