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.


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.


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"
}

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.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.