Shift-Insertを使用してWSLに貼り付ける

Shift-Insertを使用してWSLに貼り付ける
# 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コンソールホストの両方が同じ場所にあります!

(利用可能な)文書がないため、そのソースコードを指して質問に答える必要があります。

関連ブロック(練習したいブロック)はここにあります。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を実行する場合ウィンドウターミナル、Shift-Insertを使用して貼り付けを直接使用できます。 (予想されるように、Ctrl-Insertもコピーに機能します)

答え3

Shift + Insertを使用して貼り付ける理由や再マッピングする方法がわかりませんが、デフォルトでは貼り付けは右クリックするのと同じくらい簡単です。

関連情報