Popularity
6.9
Declining
Activity
3.4
Declining
482
12
38

Programming language: VimL
Tags: Development Tools     IDEs     Vim    

vim-racer alternatives and similar packages

Based on the "Vim" category

Do you think we are missing an alternative of vim-racer or a related project?

Add another 'Vim' Package

README

Vim Racer Plugin

This plugin allows vim to use Racer for Rust code completion and navigation.

Installation

  1. Build / Install Racer

  2. Install using Pathogen, Vundle or NeoBundle. Or, copy ftplugin/rust_racer.vim into your ~/.vim/plugin directory.

Vundle users:

  Plugin 'racer-rust/vim-racer'

NeoBundle users:

  NeoBundle 'racer-rust/vim-racer'

vim-plug users:

  Plug 'racer-rust/vim-racer'

Pathogen users:

  git clone --depth=1 https://github.com/racer-rust/vim-racer.git ~/.vim/bundle/vim-racer
  1. Add g:racer_cmd to your .vimrc. It contains full path to racer executable file. Variable g:racer_cmd is optional. You do not need to use this variable if the executable file is in a directory that is specified in $PATH, else you should specified full path to racer executable binary file in this g:racer_cmd. Also it's worth turning on 'hidden' mode for buffers otherwise you need to save the current buffer every time you do a goto-definition. E.g.:
  set hidden
  let g:racer_cmd = "/home/user/.cargo/bin/racer"
  1. If you want completions to show the complete function definition (e.g. its arguments and return type), enable the experimental completer:
  let g:racer_experimental_completer = 1
  1. If you want to insert the parenthesis in the completion:
  let g:racer_insert_paren = 1

Example Mappings

vim-racer enables C-x-C-o to search for completions and provides several <Plug> mappings for source code navigation. These mappings are not enabled by default but you can easily use them by adding the following lines to your .vimrc (Or init.vim in case of Neovim).

For example, with the following mappings you can navigate to the identifier under the cursor and open it on the current buffer, on an horizontal or vertical split, or go straight to the documentation:

au FileType rust nmap gd <Plug>(rust-def)
au FileType rust nmap gs <Plug>(rust-def-split)
au FileType rust nmap gx <Plug>(rust-def-vertical)
au FileType rust nmap <leader>gd <Plug>(rust-doc)