WSLで貼り付けるにはShift+Insertを使用します

WSLで貼り付けるにはShift+Insertを使用します
# When I do just Shift-Insert, I get
~$ 2~
# When I do Ctrl-V, then Shift-Insert, I get
~$ ^[[2;2~

Shift+InsertはWindows CMDやGit-Bashなどの他の状況でもうまく機能します。

wsl では、Ctrl + Shift + V を使用して貼り付けることができますが、Shift + Insert を使用することをお勧めします。

回避策はありますか?

答え1

によるとマイクロソフト/WSL:

WSLディストリビューションはWindowsコンソールで起動します(サードパーティのコンソール/ターミナルを起動する手順を実行しない限り)。したがって、UI/UX関連の問題は、Windows コンソール問題追跡。

しかし、Windows コンソールに指差すWindowsターミナル:

新しい Windows ターミナルと元の Windows コンソール ホストがすべて同じ場所に存在します。

(使える)ドキュメントがないので、質問への回答はソースコードを参照する必要があります。

関連するチャンク(練習したいもの)はここにあります。windowio.cpp:

    // handle shift-ins paste
    if (inputKeyInfo.IsShiftOnly() && ShouldTakeOverKeyboardShortcuts())
    {
        if (!bKeyDown)
        {
            return;
        }
        else if (VirtualKeyCode == VK_INSERT && !(pSelection->IsInSelectingState() && pSelection->IsKeyboardMarkSelection()))
        {
            Clipboard::Instance().Paste();
            return;
        }
    }

条件の半分は(Paste()いくつかの例外を除いて)満たされる可能性が高いようです。バグこのプログラムでは明らかではないもの:

  • ShouldTakeOverKeyboardShortcuts()—しかし、これはCtrl+Shift+プラス/マイナスコード

  • pSelection->IsKeyboardMarkSelection()— 選択にはマウスが使用されたと想定しています。

HandleKeyEventしかし、これはこの方法が2つの異なるキーシーケンスを同等に扱っていると仮定した場合です。 は^[[2;2~プログラムの別の部分、 から来ておりterminalInput.cpp組み込みテーブル

// Sequences to send when a modifier is pressed with any of these keys
// Basically, the 'm' will be replaced with a character indicating which
//      modifier keys are pressed.
static constexpr std::array<TermKeyMap, 22> s_modifierKeyMapping{

そしてここで適用される:

// If a modifier key was pressed, then we need to try and send the modified sequence.
if (keyEvent.IsModifierPressed() && _searchWithModifier(keyEvent, senderFunc))
{
    return true;
}

コードを読むと、これがすべてであるように見えます上流のロジックからwindowio.cpp、その組み合わせに到達することはありません。開発者は、この動作を上書きまたは変更する方法を提供していません。

@Rody-Oldenhuis のコメントで示唆されているように:

使用できますいいえ; Ctrl+Ins/Shift-Ins をすぐにサポートします

(ミント味に由来)。

答え2

WSLをWindowsターミナルShift + Insert は貼り付けにそのまま使用できます。(予想どおり、Ctrl + Insert もコピーに使用できます)

答え3

貼り付けに Shift + Insert を使用する理由や、それを再マップする方法がよくわかりませんが、デフォルトの貼り付けはマウスの右ボタンをクリックするだけです。

関連情報