VimにRustの環境を構築する
RustのIntroductionをやってみる途中で、補完とかが効かないとツライなと思ったので
VimにRustの環境を作ってみた。
前提
OSはMacです(たぶんLinuxでも動くと思います)
rustupでRustをインストールしていることを前提とします。
できるようになること
インストール
cargoでRacer(コード補完)とrustfmt(フォーマッタ)をインストールします。
cargo install racer cargo install rustfmt
Vim Plugin
このPluginを使います。
.vimrc
私の設定を乗せておきます。
使用していない機能もあるので、詳しくは各Pluginのドキュメントを参照してください。
NeoBundle 'racer-rust/vim-racer', {'autoload': {'filetypes': ['rust']}} let s:hooks = neobundle#get_hooks("vim-racer") function! s:hooks.on_source(bundle) let g:racer_cmd = "$HOME/.cargo/bin/racer" endfunction NeoBundle 'rust-lang/rust.vim', {'autoload': {'filetypes': ['rust']}} let s:hooks = neobundle#get_hooks("rust.vim") function! s:hooks.on_source(bundle) " save時にオートフォーマットする let g:rustfmt_autosave = 1 let g:rustfmt_command = '$HOME/.cargo/bin/rustfmt' endfunction NeoBundle 'scrooloose/syntastic', {'autoload': {'filetypes': ['rust']}} let s:hooks = neobundle#get_hooks("syntastic") function! s:hooks.on_source(bundle) " save時にシンタックスチェックする let g:syntastic_mode_map = { 'mode': 'passive', 'active_filetypes': ['rust'] } let g:syntastic_rust_checkers = ['rustc', 'cargo'] endfunction
この設定でsave時にオートフォーマットとシンタックスチェックが走ります。
コード補完はC-xC-o
でできます。
余談的な
これで結構快適にRustが書けるようになります。
大規模のソースを読むとなると、タグジャンプとかしたくなる。
もう少しRustを書くようならタグジャンプの設定もしようかな。