プログラマー VTuber 衣亥栖ティオのちょっとした話

Youtubeに投稿したプログラミング学習動画の補足説明をするためのブログです。

Vimのプラグインを活用しようと思った話

この記事はVim Advent Calendarのカレンダー2の9日目です。

qiita.com

自己紹介

こんにちは、プログラマーVTuberの衣亥栖ティオです。

f:id:iis_tio:20211205145113j:plain:w200

普段はYouTubeにプログラミング学習者向けの動画を投稿しています。

https://www.youtube.com/channel/UCKdKAh96Tl4dMIHsZtc9KEQ

https://twitter.com/TioIis

プラグインを活用しようと思った背景

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

VTuberGitHubアカウントを作成するまでの過程は以下にあるので、興味があれば読んでみてください。

https://iis-tio.hatenablog.com/entry/2021/11/13/184828

プラグイン選定のコンセプト

普段から「Vimを使いこなせていない」と感じていたとはいえ、メモ帳として利用する都合上、最低限のプラグインは利用していました。 実はそれらを引き続き使おうかなと思ったのですが、「せっかくなら使ったことないやつも含めて選定しよう」と思いました。 「迷ったら使ったことないやつにする」という感じですね。

導入したプラグイン

それでは早速、私が導入したプラグインを紹介していきます。

プラグインマネージャー

プラグインマネージャーはvim-plugを採用しました。

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を利用した開発動画も考慮すると、これらはとても嬉しいプラグインです。 その他にもスニペットなどの用途で以下を導入しました。

ステータスバー

ステータスバーはvim-airlineとvim-airline-themesを利用しています。

以前はステータスバー用のプラグインを利用していませんでしたが、 せっかくなので導入してみました。 なくてもいいかなと思っていたのですが、画面がカッコよくなってとても嬉しいです。 vim-airline-themesも導入したのですが、デフォルト設定で満足してしまいました。 機会があれば使ってみようと思っています。

カラースキーマ

カラースキーマvim-hybridを利用しています。

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日目の方は現時点では決まっていません。 私が最後かな?

qiita.com