PHPStormでIdeaVimを使って編集作業をしているが、作業スタイルとしてどんどん関連ファイルをタブで開いていくスタイルなので、気づくとタブの量がすごいことになってしまう。
そういう時は、編集中以外のタブを一気に閉じたいというわけで、調べてみた。
なお、IdeaVimにはtabonly
コマンドは実装されていない。
方法
結果的には、下記の1行を.ideavimrc
に追記すれば、任意のショートカットで:tabonly
と同じ動きをIdeaVimでも実現できる。
1 | noremap \r :action CloseAllEditorsButActive<CR> |
※ここでは\r
で、編集中以外のタブを閉じるActionを実行している。
メモ
actionとは
IdeavimではPHPStorm、というかIntellijを操作するためのaction
が定義されているので、ユーザはactionを任意のショートカットに関連付けることで便利に拡張できるようになっている。action
のリストは:actionlist [pattern]
で確認&検索可能。
action
は、:action {name}
で直接実行することもできるが、アクション名を覚えるのは大変なのでショートカットを割り当てるのが現実的だと思う。
カスタムコマンドには出来ないか?
vimっぽくするには、:tabonly
コマンドに上記actionを紐付けるのが良さそうだが、Ideavimではカスタムコマンドは設定出来ないようなので、今回は諦めた。
その他の方法
Intellijのショートカットにclose others
という項目があるので、それにショートカットを割り当てることでも実現できる。わざわざIdeaVimを経由してIDEの機能を使わなくても実現は可能である。