summaryrefslogtreecommitdiff
path: root/vim/bundle/vim-racer/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/vim-racer/README.md')
-rw-r--r--vim/bundle/vim-racer/README.md60
1 files changed, 60 insertions, 0 deletions
diff --git a/vim/bundle/vim-racer/README.md b/vim/bundle/vim-racer/README.md
new file mode 100644
index 0000000..b56655d
--- /dev/null
+++ b/vim/bundle/vim-racer/README.md
@@ -0,0 +1,60 @@
+# Vim Racer Plugin
+
+This plugin allows vim to use [Racer](http://github.com/phildawes/racer) for Rust code completion and navigation.
+
+## Installation
+
+1. Build / Install [Racer](http://github.com/phildawes/racer)
+
+2. Install using Pathogen, Vundle or NeoBundle. Or, copy `plugin/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
+ ```
+
+3. Add `g:racer_cmd` to your `.vimrc`. 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 = "/path/to/racer/bin"
+ ```
+
+4. 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
+ ```
+
+## 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)
+```