# 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 콘솔 호스트가 모두 같은 위치에 있습니다!
(사용 가능한) 문서가 없으므로 해당 소스 코드를 가리켜 질문에 답해야 합니다.
관련 블록(연습하려는 블록)은 여기 있습니다.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를 지원합니다.
(민트에서 추출).
답변2
다음을 사용하여 WSL을 실행하는 경우윈도우 터미널, Shift-Insert를 사용하여 붙여넣기를 직접 사용할 수 있습니다. (예상할 수 있듯이 Ctrl-Insert도 복사에 작동합니다)
답변3
Shift+Insert를 사용하여 붙여넣는 이유나 다시 매핑하는 방법을 잘 모르겠지만 기본적으로 붙여넣기는 마우스 오른쪽 버튼을 클릭하는 것만큼 쉽습니다.