目前公认的宇宙"最强IDE" VSCode
已经把开发体验做的足够友好了,可能有人会问:为什么选择使用Vim
作为IDE
开发Rust
?
我的回答是:装 X 至上...
当然,对于使用Vim
进行开发这件事,无需太多解释,喜欢用的人爱不释手,不喜欢用的人,嗤之以鼻,不会用的人,羡慕不已......
安装 Vim 和 Rust
这里以MacOS举例:
安装Vim(macos 的终端默认情况下已经内置了Vim)
brew install vim
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
插件管理器
为了方便管理 Vim 插件,我们选择安装 vim-plug
,它是一个轻量级且易于使用的插件管理器。。
vim-plug
的仓库地址:https://github.com/junegunn/vim-plug
,你可以参考安装教程,结合自己的系统进行安装。
这里以 Unix
(MacOS
一样)安装为例:
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
配置 .vimrc
.vimrc
是 Vim 的配置文件,我们可以在里面进行配置和管理插件。
在终端中使用 vim ~/.vimrc
进行编辑。
以下是一个示例 .vimrc
文件,你也可以根据个人喜好进行配置:
" 启动vim-plug
call plug#begin()
" 插件列表
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'rust-lang/rust.vim' " Rust语法高亮、格式化等
Plug 'prabirshrestha/vim-lsp' " 代码补全、错误检查等
Plug 'scrooloose/nerdtree' " 文件浏览器
Plug 'dense-analysis/ale' " 异步语法检查和代码格式化
Plug 'vim-airline/vim-airline' " 状态栏美化
" 结束vim-plug
call plug#end()
" 启用语法高亮
syntax enable
filetype plugin indent on
let mapleader = ","
" rust.vim 配置
let g:rustfmt_autosave = 1 " 保存时自动格式化
let g:rustfmt_command = "rustfmt" " 自定义格式化命令
" ALE 配置
let g:ale_linters = {
'rust': ['cargo', 'clippy'],
}
let g:ale_fixers = {
'rust': ['cargo', 'rustfmt'],
}
let g:ale_rust_cargo_use_clippy = 1 " 使用 clippy 进行更严格的检查
" vim-airline 配置
let g:airline#extensions#ale#enabled = 1 " 在状态栏显示 ALE 检查结果
" NERDTree 配置
autocmd vimenter * NERDTree " 编辑文件时默认打开NERDTree
" let g:NERDTreeShowHidden = 1 " 显示隐藏文件
" 快捷键映射
" 在可视模式下选中一段文本,执行 ft 进行格式化
vnoremap <leader>ft :RustFmtRange<CR>
" 普通模式下执行 ft 进行格式化
nnoremap <leader>ft :RustFmt<CR>
" 普通模式下,按Meta/Option键+r,执行运行
nnoremap <M-r> :RustRun<CR>
" 普通模式下,按Meta/Option键+t, 执行测试
nnoremap <M-t> :RustTest<CR>
" 普通模式下,按 Ctr + t,切换文件列表打开和关闭
nnoremap <C-t> :NERDTreeToggle<CR>
保存并关闭 .vimrc
文件后,重新打开 Vim(这个顺序要记住)
然后,在 Vim 命令模式下(按 :
之后),输入 PlugInstall
,回车即可对配置中的插件进行安装。
插件介绍
.vimrc
配置中,我们使用了一些常用的插件,下面简单进行演示
rust.vim
和 ale
提供 Rust 语法高亮、代码补全、代码格式化
vim-airline
美化状态栏
可以看到Vim窗口底部的变化,最左边出现了 NORMAL
(编辑模式),src/main.rs
(编辑中的文件),rust-analzer
(Rust语法支持);且当鼠标所在代码异常时,最底部会给出错误信息。
NERDTree
文件浏览器,你可以根据自己的需求添加或删除插件。
在我们的.vimrc
配置中,对 NERDTree
切换文件浏览器的快捷键进行了映射:
nnoremap <C-t> :NERDTreeToggle<CR>
因此,只需要按 Ctr + t
,进行文件浏览器的打开
/关闭
切换,打开状态,可以选择资源中的某个文件,选中后回车
,即可打开该文件,再按Ctr + t
关闭文件浏览器,即可进入文件编辑状态。