👻

ファイル切り替えを楽にする vim-rule-switcherプラグイン

2025/02/05に公開

Vim-Rule-Switcher: 効率的なファイル切り替えツール

はじめに

この記事は、Vim駅伝2025年2月5日(水)の記事です。

Vimでの作業において、コードリーディング、編集、そしてコード内の移動は頻繁に行われます。
ファイルの切り替えもそれなりの頻度で行われるものであり、同時に地味にストレスでした。
ファイル切り替えの(たぶん)定番ファジーファインダーを使っていましたが、以下の問題がありました。

  1. 今この瞬間開きたいファイルがファイル履歴に埋もれてしまう…( ;´。 `; )
  2. ファイル名で絞り込みを行うものの、意図したファイルが開けないことがある…( ;´。 `; )

そこで、これらの問題を解決するために開発したのがvim-rule-switcherです。

https://github.com/nekowasabi/vim-rule-switcher

vim-rule-switcherの特徴

実現したいのは以下でした。

  1. 少ないキーストロークで、現在作業中のプロジェクトの関連ファイルに移動したい
  2. 特定のルールに基づいて気の利いた感じにファイルを切り替えたい
  3. プロジェクトごとに開く対象ファイルを管理したい

使い方

プロジェクト単位での管理

vim-rule-switcherは、プロジェクトごとに必要なファイルをjsonで管理します。

異なる機能を開発する際は、別のプロジェクトとしてスイッチルールを作成することで、必要なファイルにすばやく移動できます。

コマンドからプロジェクトを簡単に保存できます。順番を変更したい場合は、JSONファイルを直接編集するだけです。

ルールに基づいたバッファー切り替え

:SwitchRule コマンドを実行すると、jsonファイルで定義されたリストの次のファイルへ移動できます。
ショートカットキーを割り当てることで、ファイルA→ファイルB→ファイルC→ファイルA(リストの最後で切り替えた場合はループする)といった順番でファイルを開くことができます。

フローティングウィンドウ機能

しかし、:SwitchRule コマンドは、プロジェクトに登録したファイルが増えてくると、どのファイルが次に開かれるのかわかりにくくなったり、何度も :SwitchRule コマンドを連打しなければいけません。
プロジェクトに登録されたファイルを確認しつつバッファ切り替えしたい場合は、:SelectSwitchRule コマンドを実行すると、フローティングウィンドウが表示され、現在のプロジェクトで使用するファイル一覧が表示されます。
エンターキーまたは、0から9までの数字を入力だけで、選択したファイルを簡単に開くことができます。

今後の展望

  1. ddu連携:プロジェクト名で開く機能
  2. ファイル一覧から分割して開く機能

まとめ

vim-rule-switcherは、Vimユーザーのワークフローを大幅に改善する可能性を秘めたツールです。
効率的なファイル管理と迅速なバッファー切り替えを実現し、開発作業をスムーズにします。

詳しい利用方法は、githubのリポジトリを確認ください。

フィードバックお待ちしています!

https://github.com/nekowasabi/vim-rule-switcher

Discussion