VSCode Vimのあまり有名じゃない気がする便利機能
かんたんコメント切り替え
「vim コメントアウト」とか検索すると「矩形選択して, I押して、#や//を入力」みたいな情報が見られるが、VSCode vimではそんな必要はない。
実はVSCode Vimではvim-commentaryというvim拡張の機能が最初から有効になっていてNormalモーでgcc、もしくはVisualモードでgcで行単位コメントの切り替えができる。例えば"3gcc"で3行コメントアウトなど、モーションと組み合わせられる分VSCodeのCtrl+/なんかより便利。絶対使うべし。
2文字検索移動
easy-motionというvim拡張の機能が入ってるのは有名らしく、vimで上下移動を楽にすると言ったらeasy-motionの話ばかりでてくる。便利と言われれば便利なのだろうが、実際ジャンプするまでのキーストロークが意外に多くそれなら数字+jkでいいじゃん、という気もしてくる。それよりも個人的には2文字検索で行またいで移動できるsneakというvim拡張の機能が使いやすいと思う。
"vim.sneak": true,
settings.jsonにこう記述するだけでsneakの機能が有効になる。
使い方はノーマルモードでs+2文字入力で検索。つまり"sab"と入力すれば次の"ab"の部分まで飛ぶ。
要はfキーの2文字+行マタギ版だ。shift+sで逆方向検索するのも、;キーで次に飛べるのも一緒。
easymotionに比べて使い方も単純でわかりやすいし、コード内の上下移動はこれ一つでほぼまかなえる。飛びたい行に視線をやったら、目に入った2文字をsに続けてタイプするだけでいいんだから。
ショートカットキーでシェルコマンド実行
キーバインドの設定で任意のコマンドをターミナルで実行させることができる。
例えばctrl押しながらcdと押すことで、cdコマンドさせるならkeybindings.jsonにこんな風に記述する
{ "key": "ctrl+c ctrl+d", "command": "workbench.action.terminal.sendSequence", "args": { "text": "cd ${fileWorkspaceFolder} \n " }, "when": "editorTextFocus"
見ての通り、実行させるというかターミナルにテキスト送りつけてるだけなのだが、最後に改行入れておけばちゃんと実行してくれる。複数コマンド実行ももちろん可能。いちいちターミナルとエディタを行き来する必要がないため、固定でよく使うコマンドがある場合は設定しておくとかなり便利だ。
ディスカッション
コメント一覧
まだ、コメントがありません