
# When I do just Shift-Insert, I get
~$ 2~
# When I do Ctrl-V, then Shift-Insert, I get
~$ ^[[2;2~
Shift-insert funciona bien en otras situaciones, como Windows CMD o Git-Bash
En wsl, puedo usar Ctrl-Shift-V para pegar, pero prefiero Mayús-insertar.
Hay algún trabajo alrededor ?
Respuesta1
De acuerdo aMicrosoft/WSL:
Tenga en cuenta que la distribución WSL se inicia en la consola de Windows (a menos que haya tomado medidas para iniciar una consola/terminal de terceros). Por lo tanto, presente los problemas relacionados con UI/UX en elConsola de Windowsrastreador de problemas.
Pero el enlace dado paraConsola de Windowspuntos aTerminal de Windows:
La nueva Terminal de Windows y el host de la consola original de Windows, ¡todo en el mismo lugar!
No hay documentación (utilizable), por lo que su pregunta debe responderse señalando su código fuente.
La parte relevante (que le gustaría ejercitar) está aquí, enwindowio.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()
Parece probable que se cumplan la mitad de las condiciones (para alcanzar ese objetivo ) (salvo algunasbichoen este programa). Los que no son evidentes:
ShouldTakeOverKeyboardShortcuts()
- pero esto se usa en elCtrl+Mayús+más/menoscódigopSelection->IsKeyboardMarkSelection()
- asumimos que se utilizó el mouse para la selección.
Pero eso supone que este HandleKeyEvent
método trata las dos secuencias de claves diferentes por igual. El ^[[2;2~
viene de otra parte del programa, en terminalInput.cpp
, usando unmesa incorporada
// 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;
}
Al leer el código, parece que esto es todo.río arribade la windowio.cpp
lógica, por lo que esa combinación nunca se alcanzará. Los desarrolladores no proporcionaron ninguna forma de anular o modificar este comportamiento.
Como se sugiere en un comentario de @Rody-Oldenhuis:
Puedes usarwsltty; esto admite Ctrl+Ins/Shift-Ins listo para usar
(que se deriva de mintty).
Respuesta2
Si ejecuta WSL usandoTerminal de Windows, Shift-Insert funciona de forma inmediata para Pegar. (Y Ctrl-Insertar también funciona para Copiar, como era de esperar)
Respuesta3
No estoy seguro de por qué desea utilizar Mayús+Insertar para pegar o cómo reasignarlo, pero el pegado predeterminado es tan simple como hacer clic con el botón derecho del mouse.