So kopieren Sie den Pasteninhalt im vi-Editor

112

Ich habe versucht, Strg + V zum Einfügen von Inhalten in ein vi-Editor-Dokument zu verwenden, aber Strg + V wird nicht als Paste interpretiert.

    
Rpj 16.02.2013, 09:13
quelle

10 Antworten

134

Stellen Sie zuerst sicher, dass Sie sich im Bearbeitungsmodus befinden (drücken Sie i ). Dann können Sie einfügen mit Strg + Shift + V , wenn Sie in einem Terminalemulator sind wie gnome-terminal (oder wählen Sie "Einfügen" aus dem Rechtsklick-Menü).

Sie können auch :set paste in vim eingeben, bevor Sie einfügen, um das automatische Einrücken usw. zu deaktivieren. Dann :set nopaste , nachdem Sie den Inhalt eingefügt haben.

Überprüfen Sie auch diese Frage auf stackoverflow.com für weitere Informationen.

Wenn Sie Zeilen in vim kopieren / einfügen möchten (im Gegensatz zum Einfügen von Zwischenablage-Inhalten), sollten Sie den Befehl yank ausprobieren. Hier ist ein Spickzettel , der hilfreich sein könnte.

    
Attila O. 16.02.2013, 09:27
quelle
52

Vi (und Vim) funktioniert sehr anders als ein normaler Texteditor wie Gedit. Es hat auch eine ziemlich steile Lernkurve. Wenn Sie einige grundlegende Befehle erlernen möchten, beginnen Sie mit diesem interaktiven Lernprogramm .

Allerdings, um Ihre Frage zu beantworten. Auf den Inhalt der System-Zwischenablage kann über das Plus-Register zugegriffen werden. Um etwas aus der Zwischenablage des Systems einzufügen, drücken Sie im Normalmodus: "+ p (Nicht zur gleichen Zeit, sondern nacheinander).

    
Daniel Jonsson 16.02.2013 09:34
quelle
22
  1. Wenn Sie Inhalte in dieselbe Datei einfügen möchten , verwenden Sie yank und paste .

  2. Wenn Sie Inhalte über Terminals kopieren möchten, öffnen Sie die erste Datei, ziehen Sie den gewünschten Text, öffnen Sie dann Ihre zweite Datei in vim (zB :tabnew /path/to/second/file ) und drücken Sie p , um es einzufügen.

  3. Wenn Sie Inhalte von vim in ein externes Programm kopieren möchten , müssen Sie auf die Zwischenablage des Systems zugreifen. Ich nehme an, dass Sie Ubuntu verwenden. Die GUI-Version von vim hat immer Zwischenablage-Unterstützung, wenn Sie jedoch Vim von einem Terminal verwenden möchten, müssen Sie nach X11-Clipboard-Unterstützung suchen.

    Geben Sie in der Konsole Folgendes ein:

    $ vim --version | grep xterm
    

    Wenn Sie -xterm_clipboard finden, haben Sie zwei Möglichkeiten:

    1) Kompilieren Sie vim selbst mit dem Flag xterm_clipboard auf

    2) Deinstallieren Sie vim, installieren Sie stattdessen gvim (vim-gtk oder vim-gnome). Sie können bei non-gui vim bleiben, indem Sie wie zuvor vim vom Terminal aus anrufen. Dieses Mal sollten Sie bei der Überprüfung + xterm_clipborad finden.

    Nun, wenn Sie einen Text in das + Register in Ihrem vim-Editor (zB "+ yy) ziehen, wird er auch in die System-Zwischenablage kopiert, die Sie von Ihrem externen Programm wie gedit editor mit abrufen können Strg + V .

  4. Wenn Sie Inhalte aus einem externen Programm in vim kopieren möchten, kopieren Sie zunächst Ihren Text über Strg + C in die Systemzwischenablage. Klicken Sie dann im vim-Editor Einfügemodus auf die mittlere Maustaste (normalerweise das Rad) oder drücken Sie Strg + Shift + V zum Einfügen.

    Dies sind 4 grundlegende kopieren & amp; paste Bedingungen in Bezug auf vim. Ich hoffe, das hilft.

47dev47null 20.02.2013 06:53
quelle
14

Ich verwende immer Shift + Einfügen , wenn ich Text in das Terminal einfügen möchte, funktioniert in allen Terminal-Programmen.

(Dies ist auch der Grund, warum ich nie einen Laptop bekomme, wo man Einfügen nicht drücken kann, ohne eine Sekundärtaste zu drücken)

    
Magnus Jonsson 17.02.2013 17:59
quelle
10

Verwenden Sie die mittlere Maustaste , um Text einzufügen, den Sie anderswo hervorgehoben haben.

Dies ist nützlich, wenn Sie keinen Zugriff auf Ihre System-Zwischenablage haben (z. B. in einer Remote-SSH-Sitzung).

Muss sich im Bearbeitungsmodus für Vim befinden.

    
will-ob 16.02.2013 17:09
quelle
5

Sobald Sie vi eingeben, drücken Sie i , um in den Einfügemodus zu gelangen, klicken Sie mit der rechten Maustaste in das Terminal und klicken Sie auf Einfügen.

    
GC 13 17.02.2013 07:34
quelle
3

Detaillierte Anweisungen zum Kopieren / Einfügen von Textzeilen in vi mit yank und put

(verwenden Sie Folgendes im Befehlsmodus von vi)

Kopieren (YANK)

Um eine Zeile in vi zu kopieren:

  • Bewegen Sie im Befehlsmodus den Cursor auf die Zeile, die kopiert werden soll, und geben Sie yy oder Y ein.

Um 2 Zeilen in vi zu kopieren:

  • Bewegen Sie im Befehlsmodus den Cursor auf die erste Zeile, die kopiert werden soll, und geben Sie 2yy oder 2Y ein.

(ebenso können beliebig viele Zeilen kopiert werden)

Um alle Zeilen von der aktuellen Position zum Ende der Datei zu kopieren:

  • Bewegen Sie im Befehlsmodus den Cursor auf die erste Zeile, die kopiert werden soll, und geben Sie yG ein.

Um den gesamten Text vom aktuellen Ort bis zum Ende des aktuellen Wortes zu kopieren:

  • Bewegen Sie den Cursor im Befehlsmodus an die Position, von der Text kopiert werden soll, und geben Sie yw ein.

Um den gesamten Text vom aktuellen Ort bis zum Ende der Zeile zu kopieren:

  • Bewegen Sie den Cursor im Befehlsmodus an die Position, von der Text kopiert werden soll, und geben Sie y$ ein.

Einfügen (PUT)

Einfügen von Text in die Zwischenablage - nach der Position des Cursors:

  • Geben Sie im Befehlsmodus p ein.

Um Text in die Zwischenablage einzufügen - vor die Position des Cursors:

  • Geben Sie im Befehlsmodus P ein.
slayernoah 03.11.2013 22:43
quelle
0

Wenn Sie root sind: Strg + Umschalt + V

Wenn Sie nicht-root sind: Klicken Sie mit der Maus auf die Mitte.

    
Eliptical view 01.07.2017 08:54
quelle
0

Ich wollte nur darauf hinweisen, dass Sie Vim über Git Bash unter Windows verwenden können, indem Sie p oder die mittlere Maustaste verwenden, ohne im Einfügemodus zu sein. Wenn Sie Vim durch PuTTY verwenden, können Sie einfach mit der rechten Maustaste klicken. Und das Markieren macht das Kopieren.

Ich habe das bemerkt, weil ich hier nicht gesehen habe, dass dies SE für Ubuntu ist.

Weitere hilfreiche Befehle:

  • yy (Anzahl der Zeilen) - yank (Kopie)
  • dd (Anzahl der Zeilen) - löschen
  • p - fügt die Zeile unterhalb der aktuellen Zeile ein
  • Shift + p - Einfügen der Zeile über der aktuellen Zeile
  • u - rückgängig machen
  • r - Wiederholen
  • i - Einfügen-Modus
  • v - visueller Modus
Tyler Christian 21.07.2017 05:27
quelle
0

Ich hatte ein Problem, weil meine Vim-Installation die Zwischenablage nicht unterstützt :

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

Ich habe vim-gnome installiert (was die Zwischenablage unterstützt) und dann noch einmal überprüft:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

Jetzt kann ich kopieren und einfügen mit "+ y und" + p.

    
Ashutosh Tripathy 09.06.2018 13:35
quelle

Tags und Links