2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RustのVim設定周りの備忘録

Last updated at Posted at 2024-12-20

はじめに

こんにちは!ITスクールRareTECHにてCS(Customer Support)を担当している池村です。
今回の記事はRustのVimプラグインについてです。

Vimmerにしか役に立たない気がしますが、備忘録として残しておきます。
ただ私はnvimを使っているので、vimrcは使わず、init.vimに設定を記述していってます。

rust.vim

まずはフォーマットの修正を自動で行ってほしいので、こちらをインストールしていきます。Rustの公式が出しているプラグインのようですね。設定次第で、自動保存時に勝手にフォーマットを整えてくれるので便利です。

init.vimの書き方
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以外も)のコードを補完したり、関数ジャンプ等できるようにしていきます。

init.vimの書き方
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の設定を開きます。

Vim上で
:CocConfig

Configファイルが開かれるので、そこに以下の記述を追記します。

書き方
{
  "languageserver": {
    "rust-analyzer": {
      "command": "rust-analyzer",
      "filetypes": ["rust"],
      "rootPatterns": ["Cargo.toml", "rust-project.json"]
    }
  }
}

これで補完できるようになりました。
image.png

おわりに

割とこれだけでRustを書く環境は整っている感じでした。あとはtelescope.nvimとかあればファイルの移動や文字列検索なども問題ないし、お好きにファイラーなども追加してもいいでしょう。
telescope.nvimはこちら。

あと私はこのファイラー使ってます。

いつか自分のVimの設定を全て公開する記事も書いていこうと思います。
エディタは宗教戦争なので、無理にVimを使う必要はないと思っています。自分が使っているのは、憧れのエンジニアの方が使っていて、しかも爆速だったのを見て自分もそうなりたい!となったからです。

まだまだVimmerとしてはひよっこですが、どんどん使い込んでいきたいですね。Vimmerを目指す方、一緒に頑張りましょう!
97c3bdee-3df6-4d05-a799-0d51887b6f03_720.png

余談

これを書いている時が2024年の年末ということで、そろそろ何をして年末時間を潰すか考えないとですね。例年友人宅で豪華な食事を用意して忘年会->そのまま年明けという流れですが、家族が近くにいない人はどんな年越ししているんでしょう?気になります。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?