技術

Jetbrainsのキーマップ Mnemonicを使ってみた

Jetbrainsのキーマップ、Mnemonicを試してみました。その感想になります。

導入経緯

とある案件でREST APIを構築することになり、Pycharmで実装していこうと思ったのですが、最近はNeovim触ったりVSCode触ったりしていて手が思うように動きませんでした。

そこで、やっぱりJetbrainsとVSCodeはキーバインドをできるだけ統一したいと思いました。今の所メインはJetbrainsなのでJetbrainsのキーマップを中心に調べていたら、以下の記事に出会いました。

https://zenn.dev/shyne/articles/77e59629635fd4

自分の中にあった、VSCodeとJetbrainsのキーバインドの不一致という問題を解決できるものではないのですが、興味をもったので使ってみました。

Jetbrainsのキーマップをだいぶ忘れていたので、新しいキーマップを試すのは良いタイミングだとも思いました。

感想

使ってみた感想ですが、使いやすいキーマップだと思います。

このキーマップは、Windows/Mac/LinuxのOS問わず使えるのを主目的としています。そのためかキーマップは複合キーばかりになっています。

導入前は 複合キーが多いので使いづらいかなと思ったのですが、実際使ってみると複合キーは全然苦ではありませんでした。複合キーは慣れの問題ですぐに解決するかと思います。

OS問わず使えるのを目指しているというのが個人的には好感触です。VSCodeはともかくJetbrainsはWindowsとMacでだいぶキーが違いますからね。Macに切り替えたばかりの頃は、かなり戸惑いました。

またいつメインPCがWindowsに回帰するかわかりませんし、OS共通のキーマップはありがたいです。

いいと思ったところ

覚えやすいキーマップ

キーの設定が覚えやすいのがいいです。

VSCodeもそうですが、Jetbrainsのデフォルトキーマップも一度手になじませることができれば良いのですが、はじめて触るときやしばらく時間を空けたときは、キーマップを忘れてしまい思い出すことができません。それは機能とキーマップに関連性がないからです。例えば、定義ジャンプはVSCodeだとF12、JetbrainはCmd+Bとかで、何の関連性もありません。

その点、このMnemonicはCmd J −>Dとなっているのですが、J=Jump、D=Definitonなので覚えやすいです。忘れていてもすぐにおもいだせます。この思想がいいです。

私はこのキーマップを使い始めてまだ数日しか経っておらず、まだ時々手が止まってしまうことがありますが、このコンセプトのおかげでストレスなく使えます。

割り当てが豊富で公式のREADMEが丁寧

公式のREADMEがすごく丁寧でわかりやすいです。

https://github.com/dmimat/intellij-mnemonic-keymap#readme

英語ですが長文はなく読みやすいですし、キーの割り当ての一覧を載せてくれているので検索もしやすいです。

また標準で割り当てられている機能が豊富なので、やりたいことができないということはほとんどありません。READMEにあるキーバインドを一通り実行すると、今まで使っていなかった機能の発見もありました。

微妙だと思ったところ

細かい微調整、カスタムは必要かも

デフォルトのままでほとんど問題ありませんが、人によっては少し微調整が必要になるかもしれません。

私は、コメントとPage Top/Endは割り当てキーを増やしました。

コメントはCmd L -> C (Line -> Commet)なのですが、私はこれに加えて従来のCmd /を追加しました。既に何かに割当たっていましたが、それは削除しました。私は複数行を連続でコメントアウトすることがあって、コメントアウトキーを連打することがあるのですが、Cmd L->Cを連打すると、Cmd C * 2でdeepLが起動してしまう問題がありました。それを回避するためにCmd /も使うことにしました。

またページのTopとEndの移動は、JetbrainsデフォルトのCmd Home/Endのままです。これも使いづらいので、Cmd Up/Downを追加しました。これも既存割り当てがありましたが、削除しました。

ターミナルにフォーカスするとキーが効かなくなる

ターミナルにフォーカスするとキーマップが効かなくなる問題があります。

これはおそらくですが、すべてのキーマップはCmdを起点としているため、iTermの何かと干渉しているのかも知れません。なので未確認ですが、Windwosでは発生しない問題かもしれません。

iTerm側の設定をいじれば解決するかもしれませんが、まだ調べ切れていません。もしくはJetbrains側のターミナルのToggleをファンクションキーのどれかにして、一度ターミナルのcloseを経由するなどすれば解決するかもしれません。

ターミナルはかなり使うので、その度にマウスに移行されるのは辛いです。早めになんとかしたいと思っております。

今の所はJetbrains特化になる

私は元々は、JetbrainsとVSCodeのキーマップを同じにしたいと思っていたのですが、このキーマップでは解決できません。

このキーマップはJetbrainsだけに提供されています。VSCodeの拡張機能にはありません。どうしてもVSCodeで使いたければ、自分で設定していくしかなさそうです。

なので私はとりあえずVSCodeはデフォルトのまま使っています。これも気持ち悪いので、公式がVSCode対応してくれるか他の誰かがやってくれることを願っています(他力本番😇)