先日Windows Terminalをインストールし、vimでhtmlファイルの編集中に矩形ビジュアルモードに変更しようとしたら、なぜかクリップボードの内容がペーストされ、挿入モードになり困惑しました。
windows terminalの設定ファイルを適切に設定することで、この問題を解決することが出来ました。
この記事ではWindows Terminalでvimを使った時に、ctrl+vで矩形ビジュアルモードにするための方法を解説します。
起きた問題
Windows TerminalでPower Shellを開き、vimでhtmlファイルを編集してました。liタグをまとめて編集するために、ctrl+vで矩形ビジュアルモードにスイッチしようとすると、クリップボードの内容が挿入され、インサートモードになるという予想外の動作をしました。
Windows Terminalを使わずにvimで編集した時はctrl+vで矩形ビジュアルモードにスイッチできていたので、おそらくWindows Terminalの設定の問題かなと思いました。

対処法
Windows Terminal上で開いたvimでctrl+vで矩形ビジュアルモードにスイッチするにはWindows Terminalの設定ファイルであるsettings.jsonを編集しキーバインドの設定を変更する必要があることがわかりました。
settings.jsonはWindows Terminalの追加設定をするための設定ファイルです。キーバインドの設定やカラースキームの設定などいろいろな設定をすることが出来ます。
settings.jsonは下画像のプルダウンメニューからsettingsをクリックし、左下の歯車のアイコンをクリックすることで開くことが出来ます。


settings.jsonの20行目あたりに下のコードがあります。
{
"command": "paste"、
"keys": "ctrl+v"
}
その下に以下の行を追記することでctrl+vのキーバインドを無効化することが出来ます。
{
"command": "null"、
"keys": "ctrl+v"
}
変更後のソースコードは次のようになります。(写真にはダブルクォテーションが写っていないだけです。)
{
"command": "paste"、
"keys": "ctrl+v"
}、
{
"command": "null"、
"keys": "ctrl+v"
}

ちなみに、ctrc+vでペースが出来なくてなってもctrl+shift+vでペーストできる場合があります。
左下の歯車をクリックしてsettings.jsonを開くときに、altキーを押しながらクリックするとdefaults.jsonというWindows Terminalの設定ファイルが開きます。そこにctrl+shfit+vでペーストするという設定がある場合には、ctrl+shift+vでペーストが出来ます。
もしなくても、settings.jsonもしくはdefaults.jsonにその設定、もしくは自分の好みのキーバインドを設定すればペーストを行うことが可能です。ctrl+shift+vでペースト行う設定を書き足す場合はこのようになります。
{
"command": "paste"、
"keys": "ctrl+shfit+v"
}
まとめ
- 原因はWindows Terminalのキーバインドとvimのキーバインドがかぶっていたこと
- 対処法は、settings.jsonでWindows Terminalのキーバインドを無効化すること