
나는 이것을 올바르게 파악하는 방법에 대한 문서를 읽으려고 노력했지만 더욱 혼란스러워졌습니다.
문서\u0000
상태 명령은 이 페이지의 형식과 링크 에서만 작동합니다.XTerm 제어 시퀀스\u0000
이 형식 에 대해서는 언급하지 마세요 .
설립하다이것CTRL
스택 링크, 약간 도움이 되었지만 + 에 대한 코드를 얻는 방법을 아직도 이해하지 못합니다 v
.
사용terminal.sendSequence
어떤 도움이라도 정말 환영받을 것입니다.
를 통해 터미널에 CTRL
+가 필요한 이유에 대한 컨텍스트가 필요하면 다음을 읽으십시오.v
terminal.sendSequence
현재 VScode에서 클립보드를 터미널에 붙여넣는 작업은 Powershell PSReadline이 아닌 VScode에서 처리됩니다.
이것이 왜 중요합니까? 클립보드에 여러 줄이 있는 경우 VScode는 한 번에 한 줄씩 붙여넣고 실행하므로 다음과 같습니다.
Function Hello{
Write-Host "Hello World"
}
Powershell 터미널에 붙여넣는 경우: 라인 1:
Function Hello{
2호선:
Write-Host "Hello World"
3행:
}
나는 이것을 시도하고 바꾸기 위해 읽고 또 읽었습니다. 이것링크호스트 프로세스가 클립보드를 엉망으로 만들고 있으므로 PSReadline을 사용하여 붙여넣기를 처리해야 한다고 언급합니다.
VScode의 경우임을 확인하고 다음 설정을 사용했습니다.
"terminal.integrated.sendKeybindingsToShell": true,
" `": [
"workbench.action.focusActiveEditorGroup"
],
문제가 해결된 PSReadline은 붙여넣기를 처리하지만 이제 PSReadline은 터미널용 편리한 VSCode 찾기 표시줄의 키를 포함하여 다른 모든 키 바인딩도 처리합니다.
Vscode에서 처리할 모든 명령을 나열하는 경로를 따르고 싶지 않습니다.terminal.integrated.commandsToSkipShell
답변1
그만큼링크당신은 참조를 제공했습니다Xterm.js다양한 제어 코드가 포함된 파일입니다.
나열된 것 중 하나는 다음과 같습니다 ^V
.
/** Synchronous Idle (Caret = ^V) */
export const SYN = '\x16';
뒤의 문자를 사용 하고 코드 \x
의 마지막 2자로 바꿉니다.\u00NN
예를 들어 바로 가기를 Ctrl+v
사용하여 터미널에서 트리거하려면 다음을 수행하십시오 Ctrl+k Ctrl+enter
.
{
"key": "ctrl+k ctrl+enter",
"command": "workbench.action.terminal.sendSequence",
"args": {
"text": "\u0016"
}
},
여러 줄의 콘텐츠를 대화형 노드 셸로 보내려고 할 때 비슷한 문제가 있었고 선택한 텍스트를 다음과 같이 줄바꿈해야 .editor
했습니다 Ctrl+D
.
{
"key": "ctrl+k ctrl+enter",
"command": "workbench.action.terminal.sendSequence",
"when": "editorTextFocus && terminalIsOpen",
"args": {
"text": ".editor\n${selectedText}\n\u0004"
}
},
위의 예 \u0004
에 해당합니다 .Ctrl+D