VSCodeで CMD+/
でコメントアウトしたら次の行へ移動してほしかった。が単純な設定平行ではできなかったので拡張機能で対処するよ。
コメントアウトと同時に次の行へ
普段はIntelliJとかAndroid Studioも使うのだが、コメント時の挙動がVSCodeだけ違ってるのでちょっと気持ち悪かった。どう違うかというと、CMD+/でコメントアウト(トグル)するのは同じなのだが、その後自動的に下の行へカーソルを移動してくれるのがIntelliJ/Android Studio。一方VSCodeはカーソルが移動しないので、連続で何行もコメントアウトする時にCMD+/の連打で済まないんだよね。個人的には地味に不便だと感じていたので、設定変更でコメントと同時にカーソル移動させるようにする。
調べたところ普通に設定変更で変えれる内容ではないみたい。しょうがないので、拡張機能を使って対処することにした。使用する拡張機能はmacrosというもので、これは指定したショートカットキーに複数コマンドを割り当てられるようにするものだ。こいつを普通にインストールする。
拡張機能の詳細ページにはcommentDownというサンプルが載っているが、これは現在行をすぐ下に複製するんだけど、元の行はコメントにするというコマンド。こういうのをショートカットキーひとつで呼び出せるようにする拡張機能というわけだ。
ではこれを使って目的を達成しよう。
まずはsettings.jsonに次の内容を追加する。
📄settings.json
"macros": { "commentLineAndNext": [ "editor.action.commentLine", "cursorDown", ], },
commentLineAndNextというのはこのコマンドの名前。今回はこういう名前にしてみた。
“editor.action.commentLine”というのはVSCodeの既定コマンドで、現在行のコメントをトグルするアクション。で、その次に”cursorDown”するというわけだ。
続いてこのcommentLineAndNextをショートカットキーに割り当てる。keybindings.jsonを開こう。CMD+SHIFT+Pで「基本設定: キーボード ショートカットを開く(JSON)」を選ぶのが手っ取り早い。
📄keybindings.json
{ "key": "cmd+/", "command": "macros.commentLineAndNext", "when": "isMac && textEditorFocus" }, { "key": "ctrl+/", "command": "macros.commentLineAndNext", "when": "!isMac && textEditorFocus" },
Macの場合はCMD+/、その他はCTRL+/に割り当ててみた。これはwhenのisMacで判定している。呼び出すコマンドは先程のcommentLineAndNextである。入力して保存したら試しにショートカットキーを押してみよう。ちゃんと動くかな?
なお、Vimmerの場合はtextEditorFocusじゃなくvim.mode == ‘Normal’とかでもいいかもしれない。
関連する記事
- Majestouch Minila-R Convertible レビュー(主にキーマップ)
- Thinkpad トラックポイント キーボード II 辛口・細々レビュー
- Linuxで思い通りのキーマップを設定する【xkeysnail】
- ARCHISS ProgresTouch RETRO TINY 俺々レビュー
- Ubuntu 22.04インストールしてからやること