Vimのプラグインを活用しようと思った話
この記事はVim Advent Calendarのカレンダー2の9日目です。
自己紹介
普段はYouTubeにプログラミング学習者向けの動画を投稿しています。
https://www.youtube.com/channel/UCKdKAh96Tl4dMIHsZtc9KEQ
プラグインを活用しようと思った背景
YouTubeに投稿する動画でバックエンドサーバをGoで実装するという内容を録画していたのですが、 諸事情により開発環境をGCPに立てざるを得なくなりました(ローカルPCで開発できないということです)。 現在はGCEでUbuntuを動かして、ローカルPCからSSHで接続して開発しています。
Ubuntuで開発をするにあたって問題になったのがバックエンドサーバを実装する際に利用するエディタです。 ローカルPCではVisual Studio Codeを利用していたのですが、GCEで開発を完結させる必要があるため、他のエディタを利用する必要がありました。 私は普段の業務でメモ帳としてVimを利用していることもあり、第一候補がVimでした。 そして、普段から「Vimを使いこなせていない」と感じていたこともあり、 この機会にVimで開発できるようにVim環境を一新しようと思いました。 と言いつつも、やったことはプラグインの導入くらいなので、この記事のタイトルは"Vimのプラグインを活用しようと思った話"にしています。
現在のvimrcはこちら
私のvimrcはこちらにあります。
https://github.com/tio-iis/my-vimrc
VTuberがGitHubアカウントを作成するまでの過程は以下にあるので、興味があれば読んでみてください。
https://iis-tio.hatenablog.com/entry/2021/11/13/184828
プラグイン選定のコンセプト
普段から「Vimを使いこなせていない」と感じていたとはいえ、メモ帳として利用する都合上、最低限のプラグインは利用していました。 実はそれらを引き続き使おうかなと思ったのですが、「せっかくなら使ったことないやつも含めて選定しよう」と思いました。 「迷ったら使ったことないやつにする」という感じですね。
導入したプラグイン
それでは早速、私が導入したプラグインを紹介していきます。
プラグインマネージャー
https://github.com/junegunn/vim-plug
以前はdeinを利用していたのですが「迷ったら使ったことないやつにする」というコンセプトに従ってdeinから乗り換えました。
https://github.com/Shougo/dein.vim
私はプラグインマネージャーであれこれするほどVimに深い知識があるわけではないので、 今のところdeinと同じように特に不自由なく使えています。
Go言語の開発
Go言語の開発ではvim-lspとvim-lsp-settingsを利用しています。
以前はvim-goを利用していたのですが、乗り換えました。 今後JavaScriptやTypeScriptを利用した開発動画も考慮すると、これらはとても嬉しいプラグインです。 その他にもスニペットなどの用途で以下を導入しました。
- https://github.com/prabirshrestha/asyncomplete.vim
- https://github.com/prabirshrestha/asyncomplete-lsp.vim
- https://github.com/hrsh7th/vim-vsnip
- https://github.com/hrsh7th/vim-vsnip-integ
- https://github.com/mattn/vim-goimports
ステータスバー
ステータスバーはvim-airlineとvim-airline-themesを利用しています。
以前はステータスバー用のプラグインを利用していませんでしたが、 せっかくなので導入してみました。 なくてもいいかなと思っていたのですが、画面がカッコよくなってとても嬉しいです。 vim-airline-themesも導入したのですが、デフォルト設定で満足してしまいました。 機会があれば使ってみようと思っています。
カラースキーマ
https://github.com/w0ng/vim-hybrid
以前はカラースキーマを指定せず、デフォルト設定で利用していました。 メモ帳代わりだったので、あまり拘る必要がなかったんですよね。 今回はGoを書くということで、色々探した結果、vim-hybridに落ち着きました。 今のところ気に入っています。
ファイルツリー
ファイルツリーはdefxを利用しています。
https://github.com/Shougo/defx.nvim
以前はnerdtreeを利用していました。
https://github.com/preservim/nerdtree
nerdtreeに不満はなかったのですが、 defxの作者がShougoさんということもあり「迷ったら使ったことないやつにする」というコンセプトに従ってnerdtreeから乗り換えました。 結果的に乗り換えてよかったと思っています。 サクサク動きますし、操作も直感的です。 頑張ってキーバインドを覚えようと思います。
ファイル検索
ファイル検索にはfzf.vimを利用しています。
https://github.com/junegunn/fzf.vim
以前はdeniteを利用していました。
https://github.com/Shougo/denite.nvim
deniteに不満はなかったのですが、 「fzf.vimはfzfというGoで書かれたFuzzy Finderを利用しているので動作が高速らしい」ということを知り、せっかくなので乗り換えてみました。
https://github.com/junegunn/fzf
すると、体感できるくらい動作が高速でした。 現時点では役に立つかは分かりませんが、プレビュー機能もあります。
Git操作
Git操作にはvim-fugitiveを利用しています。
https://github.com/tpope/vim-fugitive
以前はVimでGit操作をするという発想がなかったので、プラグインを利用していませんでした。 せっかくなので導入したのですが、VimでGit操作するのを忘れて普通にコマンドラインでやってしまいます。 今までの習慣を変えるのは難しいですね。
NeoVim
実は今回プラグインを活用にするにあたって、VimからNeoVimに乗り換えようと思いました。 プラグインを探しているとチラホラNeoVim対応されているものが見つかったり、主にNeoVimで利用することを想定しているものが多かったからです。 Vimが未対応ということはないのですが、せっかくなので新しいものを使ってみたいですよね。 ただ、今回は作業時間が確保できないので、諦めてしまいました。 どのタイミングで乗り換えるのがいいのでしょうか、今でも分かっていません。
まとめ
今回は衣亥栖ティオが導入したVimのプラグインを紹介しました。 「迷ったら使ったことないやつにする」というコンセプトによって、それなりに作業時間かかってしまったんですけど、 今まで知らなかった良いプラグインに出会えたので、とても良い結果となりました。
今は以下のようなおすすめプラグインの一覧を探しては眺めています。
Vim Advent Calendarのカレンダー2の10日目の方は現時点では決まっていません。 私が最後かな?