VIM kommentiert, was ich einfüge

14

Ich habe dies erhalten, als ich versucht habe, diesen Inhalt auf vim zu kopieren: https://gist.github.com/w0ng/3278077

Bildbeschreibung hier eingeben

Ich bemerke überall dasselbe Verhalten: Wenn ich etwas einfüge, das einen Kommentar enthält, wird alles, was auf den Kommentar folgt, kommentiert eingefügt.

Vielleicht hat es etwas damit zu tun, dass die folgende Zeile automatisch einen Kommentar anfügt, wenn ich einen Kommentar zum Einfügemodus schreibe und die Eingabetaste drücke.

Wie kann ich dieses Verhalten beseitigen?

jviotti
quelle

Antworten:

26

Aktivieren Sie den Einfügemodus, bevor Sie einfügen:

:set paste

So schalten Sie zurück in den "normalen" Modus:

:set nopaste
Matte
quelle
6
oder: Paste setzen! zu
wechseln
@valbaca Sie können Backticks verwenden, um code blocksin Kommentaren zu erstellen
Izkata
Ich brauchte diese Befehle genau umgekehrt!
11

Neben der von Mat erwähntenpaste Option können Sie auch direkt von VIM aus auf die X-Zwischenablage zugreifen:

  • "*p um die X11-Auswahl einzufügen
  • "+p um die X11 Zwischenablage einzufügen

Sie benötigen eine VIM-Version mit X11-Unterstützung (in Debian und seinen Derivaten müssen Sie das Paket vim-gtkoder installieren vim-gnome).

Weitere Informationen finden Sie in der Dokumentation ( :help x11-selection).

Jofel
quelle
6

Hier ist was passiert. Es gibt Vim-Formatierungsoptionen, die neue Zeilen automatisch auskommentieren, wenn Sie sich in einer Kommentarzeile befinden. Einige dieser Optionen sind normalerweise standardmäßig aktiviert. Beispielsweise,

# a comment<CR>
# 

Wie Sie sehen, wurde der neuen Zeile automatisch ein Kommentar vorangestellt. Sie können die meisten dieser Optionen deaktivieren, indem Sie cund raus der Einstellung entfernen formatoptions. Sehen Sie :h fo-tablefür weitere Informationen zu diesen Optionen.

:set formatoptions-=cr

Vim kann nicht zwischen Text, der mit den Einfügemechanismen Ihres Terminalemulators eingefügt wird, und von Ihnen eingegebenem Text unterscheiden. Durch Festlegen der Einfügeoptionen ( set paste) wird Vim angewiesen, eingefügten Text zu erwarten und alle unerwünschten Formatierungsoptionen zu deaktivieren.


quelle
3

Mein Favorit verwendet den putBefehl.

  • :put* Einfügen aus Auswahl in der aktuellen Zeile
  • :put+ Einfügen aus dem Puffer in der aktuellen Zeile

"*p/ "+pist auch gut, hat aber :pu[t]einige vorteile:

  • es wird immer zeilenweise eingefügt
  • Sie können einen zusätzlichen Parameter hinzufügen, um zu steuern, wo Folgendes eingefügt werden soll:
    • :$put+ Einfügen nach der letzten Zeile
    • :0put+ Einfügen am Anfang der Datei
defhlt
quelle
1

Als Nebenantwort: Wenn Sie Dateien haben, in denen dies enthalten ist, können Sie es entfernen, indem Sie in den vertikalen visuellen Blockmodus wechseln

ctrl+ vund navigieren Sie dann mit den Pfeiltasten / hjkl zu den Teilen, die Sie löschen möchten, und drücken Sie dann einfachd

Manchmal finde ich das schneller, als den Einfügemodus rückgängig zu machen, den Einfügemodus einzufügen und den Einfügemodus zu deaktivieren.

exussum
quelle