Ustawienia kopiowania wklejania z odpowiednim wcięciem w programie Visual Studio Code

96

Kiedy kopiuję i wklejam fragment kodu za pomocą Visual Studio Code, po naciśnięciu klawisza Enter w celu utworzenia nowego wiersza , dzieje się tak:

wprowadź opis obrazu tutaj

Wydaje się, że zachowuje wcięcie utworzone przez nową linię, dodając poprzednie informacje ze skopiowanego fragmentu. Wolałbym, żeby kod był automatycznie upiększany podczas wklejania.

Czy to zachowanie można zmienić za pomocą ustawień?

EDYCJA: Nie mówię o kopiowaniu i wklejaniu między platformami, mam na myśli kopiowanie i wklejanie w tym samym pliku w Visual Studio Code.

Tiago
źródło
a) nie kopiuj spacji pierwszego wiersza ze źródła lub b) podczas wklejania upewnij się, że kursor znajduje się na początku wiersza. Zasadniczo VSC po prostu umieszcza go tam „tak, jak jest”.
nowośćBee
Czy nie ma więc sposobu, aby to zmienić za pomocą ustawień?
Tiago
Podświetlanie tekstu i przesuwanie go ALT + Arrowkeyzachowa wcięcia. Dla szukających alternatywy dla zmiany ustawień.
Daniel Thompson

Odpowiedzi:

103

Jest to już zintegrowane w vscode z "editor.formatOnPaste": truewłaściwością w ustawieniach.

andy
źródło
12
To niestety również formatuje każdy wklejony kod, co nie zawsze jest tym, czego chcesz.
philraj
2
Nie, to nie to samo. Istnieje długotrwały problem github.com/Microsoft/vscode/issues/6392 , który został zamknięty, ale w rzeczywistości nie został rozwiązany, zobacz komentarze. Chcemy tylko zachować / dopasować poziom wcięcia linii docelowej / docelowej, a nie poziom początkowy, z którego został skopiowany tekst, podczas gdy "editor.formatOnPaste": trueformatuje np. PEP8 dla pythona.
ololobus
Cóż, to działa tak, jak chcę. Chcę, żeby minęła sekcję, do której skopiowałem, gdziekolwiek jest kursor, kiedy wklejam
Dave Pile
2
Każdy edytor tekstu, z wyjątkiem VSCode, umożliwia użytkownikowi trzykrotne kliknięcie i zaznaczenie dowolnego tekstu. CTRL C, aby skopiować, a następnie CTRL V, CTRL V, aby powielić skopiowany tekst. Z wyjątkiem kodu VS, trzykrotne kliknięcie CTRL C CTRL V dostosowuje tekst, a następnie drugie CTRL V jeszcze bardziej go pogarsza. CTRL C CTRL V to najpopularniejszy ze skrótów klawiaturowych, nawet moja mama go zna.
NZ Dev
3
To nie jest uparty, chociaż zgadzam się z resztą twojego oświadczenia. KOPIUJ I WKLEJ NIE MUSZĄ MIEĆ ZDANIA, to KOPIUJ i WKLEJ powinny działać tylko w 1 sposób.
NZ Dev
41

Ta wtyczka może ci pomóc:

rozszerzenie wklejania i wcięcia

Musisz tylko zmienić skrót i działa. Pamiętaj, że prawdopodobnie chcesz używać 'cmd'zamiast, 'ctrl'jeśli jesteś na komputerze Mac. Lubię to:

{
    "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"
}
Hallow_me
źródło
9
Użyj tego, aby odtworzyć zachowanie Sublime Text 3, tj. cmd + shift + v do wklejania wcięcia: { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }
phocks
To rozwiązanie nadal działa. Nigdy więcej nieprzyjemnych dodatkowych zakładek, a kod lubi wstawiać za każdym razem, gdy kopiuję / wklejam.
Luminous
6
Znalazłem go, przejdź do „Skróty klawiaturowe”, a następnie kliknij ikonę „Otwórz skróty klawiaturowe JSON” w prawym górnym rogu ekranu, myślę, że trudno ją znaleźć!
Matt Fletcher
To rozszerzenie ma dużą wadę: formatuje cały kod pliku podczas wklejania, a nie tylko wklejany element! Musiałem odinstalować.
sdlins
Aby zlokalizować miejsce, w keybindings.jsonktórym należy dodać fragment kodu JSON: Wyszukaj „Preferencje: Otwórz skróty klawiaturowe (JSON) w palecie poleceń
Cornelius Roemer
14

Ctrl+, Vpo którym następuje Ctrl+, Zwydaje się działać po wyjęciu z pudełka.

Philippe
źródło
2
To zadziwiająco działa. Trochę irytujące, że trzeba to robić, ale to lepsze niż nic
Nate Beers
Czy próbowałeś Cmd + V i Cmd + Z?
Philippe
zostaw to, aby produkt Microsoftu nie radził sobie z możliwością kopiowania i wklejania ... OMG, taki szczęśliwy, używam laptopa z systemem Linux ... dzięki temu obejście działa
Scott Stensland
-3

Prostym rozwiązaniem jest wypróbowanie Ctrl+ Shift+ Vpo skopiowaniu kodu. Prawidłowo wklei wszystkie kody z wcięciami.

vikrant gupta
źródło
To nie działa, dokładnie to samo. Spróbuj tego: zaznacz akapit - CTRL C, CTRL + SHFT + V, CTRL + SHFT + V. Robi się brzydko !!!!
NZ Dev
„Spróbować” brzmi dziwnie. Co to właściwie robi? A jeśli użytkownik zmienił skróty?
Nico Haase