Einstellungen zum Kopieren und Einfügen mit korrektem Einzug in Visual Studio Code


93

Wenn ich einen Code mit Visual Studio Code kopiere und einfüge , geschieht Folgendes , nachdem ich die Eingabetaste gedrückt habe, um eine neue Zeile zu erstellen :

Geben Sie hier die Bildbeschreibung ein

Es scheint den durch die neue Zeile erzeugten Einzug beizubehalten und die vorherigen Informationen aus dem kopierten Snippet darüber hinzuzufügen. Ich möchte lieber, dass der Code beim Einfügen automatisch verschönert wird.

Kann dieses Verhalten durch Einstellungen geändert werden?

BEARBEITEN: Ich beziehe mich nicht auf plattformübergreifendes Kopieren und Einfügen, sondern auf das Kopieren und Einfügen in dieselbe Datei in Visual Studio Code.


a) Kopieren Sie nicht die Leerzeichen der ersten Zeile aus Ihrer Quelle oder b) stellen Sie beim Einfügen sicher, dass sich der Cursor am Zeilenanfang befindet. Grundsätzlich wird es von VSC einfach so "wie es ist" eingefügt.
NewBee

Gibt es also keine Möglichkeit, dies durch Einstellungen zu ändern?
Tiago

Wenn Sie den Text markieren und mit verschieben, ALT + Arrowkeybleibt die Einrückung erhalten. Für diejenigen, die nach einer Alternative zum Ändern von Einstellungen suchen.
Daniel Thompson

Antworten:


97

Dies ist bereits in vscode mit der "editor.formatOnPaste": trueEigenschaft in den Einstellungen integriert.


12
Dies formatiert leider auch eingefügten Code, was nicht immer das ist, was Sie wollen.
Philraj

2
Nein, es ist nicht dasselbe. Es gibt ein langlebiges Problem, github.com/Microsoft/vscode/issues/6392 , das geschlossen, aber tatsächlich nicht behoben ist (siehe Kommentare). Alles, was wir wollen, ist nur, die Einrückungsstufe der Ziel- / "editor.formatOnPaste": trueZielzeile beizubehalten / anzupassen , nicht die Anfangsebene, von der Text kopiert wurde, während das Format ausgeführt wird, z. B. PEP8 für Python.
Ololobus

Nun, es funktioniert so, wie ich es will. Ich möchte, dass es über den Abschnitt hinausgeht, in den ich beim Einfügen kopiert habe
Dave Pile

1
Mit jedem Texteditor außer VSCode kann ein Benutzer dreimal klicken und Text markieren. STRG C zum Kopieren und dann STRG V, STRG V zum Duplizieren des kopierten Textes. Außer im VS-Code passt ein Dreifachklick STRG C STRG V den Text an und der 2. STRG V macht ihn noch schlimmer. STRG C STRG V ist die häufigste Tastenkombination, selbst meine Mutter kennt diese.
NZ Dev

2
Dies ist keine Meinung, so sehr ich dem Rest Ihrer Aussage zustimme. KOPIEREN und EINFÜGEN SOLLTEN KEINE Meinung haben, es ist KOPIEREN und EINFÜGEN, sie sollten nur in eine Richtung arbeiten.
NZ Dev

39

Dieses Plugin kann Ihnen helfen:

Paste-and-Indent-Erweiterung

Sie müssen nur die Verknüpfung ändern und es funktioniert. Denken Sie daran, dass Sie wahrscheinlich verwenden möchten, 'cmd'anstatt, 'ctrl'wenn Sie auf einem Mac sind. So was:

{
    "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
Verwenden Sie diese Option, um das Verhalten von Sublime Text 3 wiederherzustellen. cmd + shift + v zum Einfügen: { "key": "cmd+shift+v", "command": "pasteAndIndent.action", "when": "editorTextFocus && !editorReadonly" }
phocks

Diese Lösung funktioniert immer noch. Bei jedem Kopieren / Einfügen wird kein böser zusätzlicher Tab mehr gegen Code eingefügt.
Leuchtender

6
Wenn Sie es gefunden haben, gehen Sie zu "Tastaturkürzel" und klicken Sie dann auf das Symbol "Tastaturkürzel öffnen JSON" oben rechts auf dem Bildschirm. Ich denke, es ist schwer zu finden!
Matt Fletcher

Diese Erweiterung hat einen großen Nachteil: Sie formatiert beim Einfügen den gesamten Dateicode, nicht nur das Teil, das eingefügt wird! Ich musste deinstallieren.
SDLINS

So keybindings.jsonsuchen Sie, wo Sie das JSON-Snippet hinzufügen müssen: Suchen Sie in der Befehlspalette nach "Einstellungen: Öffnen Sie Tastaturkürzel (JSON)"
Cornelius Roemer

12

Ctrl+ Vgefolgt von Ctrl+ Zscheint sofort zu funktionieren.


2
Das funktioniert überraschenderweise. Etwas nervig, das tun zu müssen, aber es ist besser als nichts
Nate Beers

Haben Sie Cmd + V und Cmd + Z ausprobiert?
Philippe

Lassen Sie es so, dass ein Microsoft-Produkt die Fähigkeit zum Kopieren und Einfügen nicht beherrscht ... OMG ist so glücklich, dass ich einen Linux-Laptop verwende ... danke, dass diese Problemumgehung funktioniert
Scott Stensland

-3

Eine einfache Lösung ist , zu versuchen , Ctrl+ Shift+ Vnach dem Code zu kopieren. Alle Codes werden mit Einrückungen korrekt eingefügt.


Das funktioniert nicht genauso. Sie versuchen dies: Markieren Sie Absatz - STRG C, STRG + SHFT + V, STRG + SHFT + V. Es wird hässlich !!!!
NZ Dev

"Versuchen" klingt seltsam. Was genau macht das? Was ist, wenn ein Benutzer die Verknüpfungen geändert hat?
Nico Haase
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.