官网:https://github.com/racer-rust/vim-racer最大亮点就是支持定义跳转、rust-doc 跳转 。
racer-vim 的定位是 Rust code completion (代码补全)和 navigation (代码导航/跳转)。这两项功能 (coc-)rust-analyzer 都已经超越了 racer:
Rust:vim 环境配置
语雀内容
快捷键配置
racer 官网的推荐设置我都翻译在下面了,直接按需添加到配置文件。
" === racer 设置 ===set hidden" 设置 racer 路径let g:racer_cmd = "/home/ubuntu/.cargo/bin/racer"" Racer 的补全方式和 (coc-)rust-analyzer 智能提示补全不太一样,使用的是 vim 的" Omni completion 补全方式,需要手动触发,快捷键是 <c-n> <c-o>" 并不推荐 vim-racer 的补全功能" 补全时展示完整的函数定义,比如参数和返回类型let g:racer_experimental_completer = 1" 补全时添加括号let g:racer_insert_paren = 1" 跳转定义快捷键,十分有用augroup Racerautocmd!autocmd FileType rust nmap <buffer> gd <Plug>(rust-def)autocmd FileType rust nmap <buffer> gs <Plug>(rust-def-split)autocmd FileType rust nmap <buffer> gx <Plug>(rust-def-vertical)autocmd FileType rust nmap <buffer> gt <Plug>(rust-def-tab)autocmd FileType rust nmap <buffer> <leader>gd <Plug>(rust-doc)autocmd FileType rust nmap <buffer> <leader>gD <Plug>(rust-doc-tab)augroup END
可以只设置关于跳转定义 (definition) 和文档 (doc) 的部分:
" === racer 设置 ===set hidden" 设置 racer 路径let g:racer_cmd = "/home/ubuntu/.cargo/bin/racer"" 跳转定义快捷键,不建议设置 gtaugroup Racerautocmd!autocmd FileType rust nmap <buffer> gd <Plug>(rust-def)autocmd FileType rust nmap <buffer> gx <Plug>(rust-def-vertical)autocmd FileType rust nmap <buffer> <leader>gd <Plug>(rust-doc)" autocmd FileType rust nmap <buffer> <leader>gD <Plug>(rust-doc-tab)augroup END
使用方法
在当前的脚本里,按 Esc 进入 normal 模式,光标移到变量、函数之类的单词上
- 按
gd即可跳转到定义它们的位置,如果是被定义在别的文件,会暂时关闭当前文件窗口(不会保存原文件),打开新的缓冲区来显示跳转到的定义。 - 按
gx会分割出左右窗口,左边是定义的地方,按Ctrl+w+w可以在两个窗口之间跳转,按Ctrl+w+r可以交换窗口位置,关闭哪个窗口就用:q( 或者:close)命令

- 按
\gD跳转到函数 doc 说明的新窗口。前提是<leader>键设置为\。
buffer 和 tab page

- 关于 buffer (缓冲区)的一些操作:
- 快捷键
Ctrl+^可以在这两个文件(缓冲区)中跳转 - 命令
:bn或:bnext打开下一个缓冲区;命令:bN或:bNext打开上一个缓冲区 - 命令
:bfirst打开第下一个缓冲区;命令:blast打开最后一个缓冲区 - 命令
:bd或:bdelete删除当前缓冲区,也就是把当前文件从 vim 内存中移除,相当于关闭文件 - 命令
:ls列出缓冲区中打开的文件名称
- 快捷键
- 关于 tab page (标签页面)的一些操作:
- 快捷键
gt或命令:tabnext跳转到下一页面;快捷键ngT跳转第 n 个页面。注意 vim 的 tab 切换和 racer 提供的 rust-def-tab 设置冲突。 - 快捷键
gT或命令:tabNext跳转到上一页面 - 命令
:tabclose关闭当前页面;命令:tabs显示所有页面的文件名
- 快捷键
