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: キーボードショートカット設定を開く

  1. Ctrl + Shift + P を押す
  2. 「基本設定:キーボードショートカットを開く」を選択
    → キーバインドの一覧画面が開く

キーボードショートカット設定を開く

 

この方法でショートカット一覧を確実に開けます。

手順2: 「Ctrl+Q」で検索し、2つの割り当てを削除する

検索欄に Ctrl+Q と入力すると、次の 2つのエントリが見つかります。

  • workbench.action.quickOpenNavigateNextInViewPicker
  • workbench.action.quickOpenView

 

Ctrl + Qの検索

それぞれ左端の (キーバインドの変更の鉛筆マーク) をクリックします。
適当なキーにバインドします。例えば、Ctrl + Alt + Q

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つの割り当てを削除すれば解決

シンプルですが、気づきにくい盲点です。
同じ問題で悩んでいる方の参考になれば幸いです。