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-삽입을 선호합니다.

해결 방법이 있습니까?

답변1

에 따르면마이크로소프트/WSL:

WSL 배포판은 Windows 콘솔에서 시작됩니다(타사 콘솔/터미널을 시작하는 단계를 수행하지 않은 경우). 따라서 UI/UX 관련 문제는윈도우 콘솔이슈 트래커.

그러나 주어진 링크는윈도우 콘솔~를 가리키다윈도우 터미널:

새로운 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~는 프로그램의 다른 부분인 에서 가져온 것 입니다 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를 지원합니다.

(mintty에서 파생됨)

답변2

다음을 사용하여 WSL을 실행하는 경우윈도우 터미널, Shift-Insert는 즉시 붙여넣기 기능을 사용할 수 있습니다. (그리고 예상대로 Ctrl-Insert는 복사에도 작동합니다)

답변3

Shift+Insert를 사용하여 붙여넣기를 원하는 이유나 다시 매핑하는 방법을 잘 모르겠지만 기본 붙여넣기는 마우스 오른쪽 버튼을 클릭하는 것만큼 간단합니다.

관련 정보