Visual Studio Code(VSCode)のターミナルでVimのCtrl+Qが効かない問題を解決する方法
VS Code の統合ターミナルはとても便利で、普段のコーディング作業の延長で Vim を使えるのが魅力です。
しかし実際に使っていると、「あれ、Vim で Ctrl+Q が効かない…?」という現象に出会うことがあります。
これは、VS Code 本体が Ctrl+Q に独自ショートカットを割り当てているためです。
VS Code のショートカットが優先されるため、ターミナル内の Vim まで Ctrl+Q が届かない状態になってしまいます。
Vim では Ctrl+Q は矩形選択(ビジュアルブロック選択)に使うことも多く、これが使えないと地味に不便です。
この記事の目的
VS Code を使いながらも Vim の Ctrl+Q を正常に動作させる方法をまとめます。
特に
- VS Code の設定はなるべく変えたくない
- ターミナル内の Vim だけ正しく使えるようにしたい
という人でも安心して設定できる内容を紹介します
今回の設定変更により、次の動作が可能になります。
- ターミナル内で Vim が Ctrl+Q を 100% 受け取れる
- VS Code 本体の Ctrl+Q ショートカットは誤作動しなくなる
つまり、環境に依存せず Vim の矩形選択(Ctrl+Q)を確実に再現できる状態を目指します。
原因:Ctrl+Q が VS Code の 2つのコマンドに割り当てられていた
VS Code のキーバインドを確認したところ、次の 2つが Ctrl+Q に割り当てられていました。
- workbench.action.quickOpenNavigateNextInViewPicker
- workbench.action.quickOpenView
どちらも Quick Open(ビュー切り替え)に関する内部コマンドで、
ターミナルより先にこれらのコマンドが反応してしまうため、
Vim に Ctrl+Q が届かない状態になっていました。
解決方法:Ctrl+Q の VS Code 側の割り当てを削除する
手順1: キーボードショートカット設定を開く
- Ctrl + Shift + P を押す
- 「基本設定:キーボードショートカットを開く」を選択
→ キーバインドの一覧画面が開く
この方法でショートカット一覧を確実に開けます。
手順2: 「Ctrl+Q」で検索し、2つの割り当てを削除する
検索欄に Ctrl+Q と入力すると、次の 2つのエントリが見つかります。
- workbench.action.quickOpenNavigateNextInViewPicker
- workbench.action.quickOpenView
それぞれ左端の (キーバインドの変更の鉛筆マーク) をクリックします。
適当なキーにバインドします。例えば、Ctrl + Alt + Q
これで VS Code は Ctrl+Q に反応しなくなり、
ターミナル内の Vim が正常に Ctrl+Q を受け取れるようになります。
まとめ:VS Code の2つの Ctrl+Q 割り当てを削除すれば完了
今回の問題は、VS Code 側で Ctrl+Q が 2つのショートカットとして予約されていたことが原因でした。
- VS Code が Ctrl+Q を先に処理してしまう
- Vim がキー入力を受け取れなくなる
- キーボードショートカット画面で 2つの割り当てを削除すれば解決
シンプルですが、気づきにくい盲点です。
同じ問題で悩んでいる方の参考になれば幸いです。













ディスカッション
コメント一覧
まだ、コメントがありません