
# When I do just Shift-Insert, I get
~$ 2~
# When I do Ctrl-V, then Shift-Insert, I get
~$ ^[[2;2~
Shift-insert funciona bem em outras situações, como Windows CMD ou Git-Bash
No wsl, posso usar Ctrl-Shift-V para colar, mas prefiro shift-insert.
Existe alguma solução alternativa?
Responder1
De acordo comMicrosoft/WSL:
Observe que a distribuição WSL é iniciada no console do Windows (a menos que você tenha tomado medidas para iniciar um console/terminal de terceiros). Portanto, registre problemas relacionados à UI/UX noConsole do Windowsrastreador de problemas.
Mas o link fornecido paraConsole do Windowsaponta paraTerminal do Windows:
O novo Terminal do Windows e o host original do console do Windows, todos no mesmo lugar!
Não há documentação (utilizável), então sua pergunta deve ser respondida apontando para seu código-fonte.
A parte relevante (que você gostaria de exercitar) está aqui, emwindowio.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;
}
}
Metade das condições (para alcançar isso Paste()
) parecem provavelmente ser cumpridas (exceto algumaserroneste programa). Os que não são aparentes:
ShouldTakeOverKeyboardShortcuts()
- mas isso é usado noctrl+shift+mais/menoscódigopSelection->IsKeyboardMarkSelection()
- estamos assumindo que o mouse foi usado para seleção.
Mas isso pressupõe que esse HandleKeyEvent
método trate igualmente as duas sequências de teclas diferentes. O ^[[2;2~
vem de outra parte do programa, em terminalInput.cpp
, usando ummesa embutida
// 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;
}
Pela leitura do código, parece que isso é tudorio acimada windowio.cpp
lógica, para que essa combinação nunca seja alcançada. Os desenvolvedores não forneceram nenhuma maneira de substituir ou modificar esse comportamento.
Conforme sugerido em um comentário de @Rody-Oldenhuis:
Você pode usarque legal; isso suporta Ctrl+Ins/Shift-Ins pronto para uso
(que é derivado de menta).
Responder2
Se você executar WSL usandoTerminal do Windows, Shift-Insert funciona imediatamente para Colar. (E Ctrl-Insert também funciona para Copiar, como você poderia esperar)
Responder3
Não tenho certeza por que você deseja usar shift + insert para colar ou como remapear, mas colar padrão é tão simples quanto clicar com o botão direito do mouse.