Visual Studio Code에서 올바른 들여 쓰기로 붙여 넣기 복사 설정


96

Visual Studio Code를 사용하여 코드를 복사하여 붙여 넣을 때 Enter 키를 눌러 새 줄 을 만든 후 다음이 발생합니다.

여기에 이미지 설명 입력

새 줄에 의해 만들어진 들여 쓰기를 유지하고 그 위에 복사 된 스 니펫의 이전 정보를 추가하는 것 같습니다. 차라리 코드가 붙여 넣을 때 자동으로 아름답게 처리 되었으면합니다.

설정을 통해이 동작을 변경할 수 있습니까?

편집 : 크로스 플랫폼 복사 붙여 넣기를 말하는 것이 아니라 Visual Studio Code에서 동일한 파일 내에서 복사 및 붙여 넣기를 말하는 것입니다.


a) 소스에서 첫 번째 행의 공백을 복사하지 마십시오. b) 붙여 넣을 때 커서가 행의 시작 부분에 있는지 확인하십시오. 기본적으로 VSC는 "있는 그대로"붙여 넣습니다.
newBee

그래서 설정을 통해 변경할 방법이 없습니까?
Tiago

텍스트를 강조 표시하고 함께 이동하면 ALT + Arrowkey들여 쓰기가 유지됩니다. 설정 변경에 대한 대안을 찾는 사람들을 위해.
Daniel Thompson

답변:


102

이것은 이미 "editor.formatOnPaste": true설정의 속성 과 함께 vscode에 통합되어 있습니다.


12
안타깝게도 붙여 넣은 코드의 형식도 지정하지만 항상 원하는 것은 아닙니다.
philraj

2
아니요, 동일하지 않습니다. 종결되었지만 실제로 해결되지 않은 장기적인 문제가 있습니다. github.com/Microsoft/vscode/issues/6392 . 우리가 원하는 모든 것은 텍스트가 복사 된 초기 레벨이 아니라 대상 / 대상 행의 들여 쓰기 레벨을 유지 / 일치 "editor.formatOnPaste": true하는 것입니다. 예를 들어 PEP8 python과 같은 형식을 수행합니다.
ololobus

내가 원하는대로 작동합니다. 나는 그것을 원하는 내가 붙여 넣을 때 커서가있는 곳으로 복사 섹션 과거
데이브 더미

2
VSCode를 제외한 모든 텍스트 편집기에서는 사용자가 텍스트를 세 번 클릭하고 강조 표시 할 수 있습니다. 복사하려면 CTRL C를 누른 다음 복사 된 텍스트를 복제하려면 CTRL V, CTRL V를 누르세요. VS 코드를 제외하고는 세 번 클릭 CTRL C CTRL V는 텍스트를 조정 한 다음 두 번째 CTRL V는 상황을 더욱 악화시킵니다. CTRL C CTRL V는 가장 일반적인 키보드 단축키입니다. 우리 엄마도이 단축키를 알고 있습니다.
NZ Dev

3
이것은 내가 당신의 진술의 나머지 부분에 동의하는 한 의견이 없습니다. COPY 및 PASTE는 의견이 없어야합니다. COPY 및 PASTE는 한 방향으로 만 작동해야합니다.
NZ Dev

41

이 플러그인이 도움이 될 수 있습니다.

붙여 넣기 및 들여 쓰기 확장

바로 가기를 변경하기 만하면 작동합니다. Mac 을 사용 'cmd'하는 'ctrl'경우 대신 사용하고 싶을 것입니다 . 이렇게 :

{
    "key": "ctrl+v",
    "command": "pasteAndIndent.action",
    "when": "editorTextFocus && !editorReadonly"
},
{
    "key": "ctrl+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "!editorTextFocus"
},
{
    "key": "ctrl+shift+v",
    "command": "editor.action.clipboardPasteAction",
    "when": "editorTextFocus && !editorReadonly"
}

9
이를 사용하여 Sublime Text 3 동작을 다시 만듭니다. cmd + shift + v를 붙여 들여 쓰기 : { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }
phocks

이 솔루션은 여전히 ​​작동합니다. 복사 / 붙여 넣기를 할 때마다 더 이상 불필요한 탭과 코드를 넣는 것을 좋아하지 않습니다.
Luminous '

6
찾은 다음 "키보드 단축키"로 이동 한 다음 화면 오른쪽 상단의 "키보드 단축키 JSON 열기"아이콘을 클릭하세요. 찾기가 어렵습니다.
Matt Fletcher

이 확장에는 단점이 있습니다. 붙여 넣을 때 전체 파일 코드의 형식을 지정하는 것입니다. 제거해야했습니다.
sdlins

keybindings.jsonJSON 스 니펫을 추가해야하는 위치를 찾으려면 다음을 수행하십시오. "Preferences : Open Keyboard Shortcuts (JSON) in Command Palette
Cornelius Roemer

14

Ctrl+ V다음에 Ctrl+ Z가 바로 작동하는 것 같습니다.


2
이것은 놀랍게도 작동합니다. 그렇게해야하는 것은 성가신 일이지만 아무것도없는 것보다 낫습니다
Nate Beers

Cmd + V 및 Cmd + Z를 사용해 보셨습니까?
Philippe

Microsoft 제품이 복사 및 붙여 넣기 기능을 처리하지 못하도록 놔두십시오 ... OMG 너무
기뻐서

-3

간단한 수정은 코드를 복사 한 후 Ctrl+ Shift+ 를 시도 V하는 것입니다. 들여 쓰기가있는 모든 코드를 올바르게 붙여 넣습니다.


이것은 똑같이 작동하지 않습니다. 이 방법을 시도해보십시오 : 단락 강조 표시-CTRL C, CTRL + SHFT + V, CTRL + SHFT + V. 추악 해 져요 !!!!
NZ Dev

"시도하기"가 이상하게 들립니다. 정확히 무엇을합니까? 사용자가 바로 가기를 변경하면 어떻게됩니까?
Nico Haase
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.