はじめに
こんにちは!ITスクールRareTECHにてCS(Customer Support)を担当している池村です。
今回の記事はRustのVimプラグインについてです。
Vimmerにしか役に立たない気がしますが、備忘録として残しておきます。
ただ私はnvimを使っているので、vimrcは使わず、init.vimに設定を記述していってます。
rust.vim
まずはフォーマットの修正を自動で行ってほしいので、こちらをインストールしていきます。Rustの公式が出しているプラグインのようですね。設定次第で、自動保存時に勝手にフォーマットを整えてくれるので便利です。
all plug#begin()
Plug 'rust-lang/rust.vim'
call plug#end()
私はvim-plugを使っていますが、プラグインマネージャーによってはインストール方法など違ってくるのでご注意ください。
let g:rustfmt_autosave = 1
これで保存時に勝手にフォーマットを整えてくれます。
Vimにはvim-autoformatというプラグインもあり、rustfmtがPCに入っているのであればvim-autoformatでもOKです。このプラグインの場合、多言語などもまとめてフォーマットしてくれるので便利です。
ただ、Rustに特化したい場合はシンプルな設定で済むのでrust.vimの方がいいと思います。
coc.nvim
こちらのプラグインはコードの補完とか定義ジャンプなどの機能を提供してくれるプラグインですね。Language Server Protcol、通称LSPでリクエストに応じたレスポンスを返してくれます。エディタを通して便利な機能を提供してくれます。
これを使ってRust(Rust以外も)のコードを補完したり、関数ジャンプ等できるようにしていきます。
all plug#begin()
Plug 'rust-lang/rust.vim'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
call plug#end()
:PlugInstall
でインストールしていきます。
ただ、このプラグインを入れただけではRustのためのコード補完などはしてくれません。
Rust用のLanguage Serverを入れる必要があります。
シェル上で以下のコマンドを実行します。
rustup component add rust-analyzer
このrust-analyzerがLanguage Serverであり、お使いのエディタと連携することで補完が可能になります。
次にVimを開いて、以下を叩きCocの設定を開きます。
:CocConfig
Configファイルが開かれるので、そこに以下の記述を追記します。
{
"languageserver": {
"rust-analyzer": {
"command": "rust-analyzer",
"filetypes": ["rust"],
"rootPatterns": ["Cargo.toml", "rust-project.json"]
}
}
}
おわりに
割とこれだけでRustを書く環境は整っている感じでした。あとはtelescope.nvim
とかあればファイルの移動や文字列検索なども問題ないし、お好きにファイラーなども追加してもいいでしょう。
telescope.nvimはこちら。
あと私はこのファイラー使ってます。
いつか自分のVimの設定を全て公開する記事も書いていこうと思います。
エディタは宗教戦争なので、無理にVimを使う必要はないと思っています。自分が使っているのは、憧れのエンジニアの方が使っていて、しかも爆速だったのを見て自分もそうなりたい!となったからです。
まだまだVimmerとしてはひよっこですが、どんどん使い込んでいきたいですね。Vimmerを目指す方、一緒に頑張りましょう!
余談
これを書いている時が2024年の年末ということで、そろそろ何をして年末時間を潰すか考えないとですね。例年友人宅で豪華な食事を用意して忘年会->そのまま年明けという流れですが、家族が近くにいない人はどんな年越ししているんでしょう?気になります。