Frage Wie kopiere ich Inhalte im vi Editor


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


115
2018-02-16 08:13


Ursprung


Nur eine Anmerkung, der Hauptgrund Vi zu verwenden ist, weil Vim nicht installiert ist. Wenn Sie Vim installiert haben, lohnt es sich, das stattdessen zu verwenden. Es gibt keinen wirklichen Vorteil für Vi, außer dass es bereits auf jeder Unix-Installation vorhanden ist. Der beste Weg, um Vim zu lernen, ist meiner Meinung nach, öffnen Sie Ihren Terminalemulator (nicht von Vim) und tippen Sie vimtutor Es wird Sie in ungefähr 45 Minuten auf den neuesten Stand bringen. - Ben Mordecai
+1 @BenMordecai - Ich war schon mit vi (von alt) vertraut, einschließlich seiner praktischen Sub-Shell-Fähigkeit, aber brauchte diese Aktualisierung. Tolles bisschen Nachhilfe. Ging wie eine Brise hindurch. Vielen Dank. - Cbhihe


Antworten:


Stellen Sie zunächst sicher, dass Sie sich im Bearbeitungsmodus befinden (drücken Sie ich). Dann können Sie einfügen mit Strg+Verschiebung+VWenn Sie in einem Terminalemulator sind gnome-terminal (oder wählen Sie "Einfügen" aus dem Rechtsklick-Menü).

Sie können auch eingeben :set paste in vim vor dem Einfügen, um das automatische Einrücken usw. zu deaktivieren :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 kopieren / einfügen möchten vim (im Gegensatz zum Einfügen von Zwischenablage Inhalt), sollten Sie die Ruck Befehl. Hier ist ein Spickzettel das könnte helfen.


137
2018-02-16 08:27



Ich denke, wenn Sie den Mauszeiger auf haben, können Sie nicht mit Strg + Umschalt + V einfügen. - Alvin Wong
Nur eine Anmerkung, die I ist Groß- und Kleinschreibung. Der Kleinbuchstabe iist der normale Weg, den Einfügemodus zu betreten. Hauptstadt I bringt den Cursor an den Anfang der Zeile und führt Sie dann in den Einfügemodus. - Ben Mordecai


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 Dieses interaktive Tutorial.

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


52
2018-02-16 08:34



Das ist etwas, was ich bis jetzt nicht wusste. Außerdem +1 für die Verknüpfung eines weiteren tollen vim Tutorials. - Attila O.
Apropos Lernkurven für Redakteure, es gibt die "klassischen Lernkurven für einige gängige Editoren", blog.thilelli.net/public/store/attached/kurven.jpg. - hlovdal
In GNOME Terminal sind die Abkürzungen für Kopieren und Einfügen Ctrl-Shift-C bzw. Ctrl-Shift-V. - Flimm
Ich habe versucht, nacheinander <kbd> "</ kbd>, <kbd> + </ kbd> und <kbd> p </ kbd>, auch <kbd>" </ kbd> und <kbd> p <zu drücken / kbd> und nichts ist passiert. Was ich falsch gemacht habe? ich benutze vi nicht vim - user907860
Das ist die richtige Antwort. Verwendung von z. Strg-Umschalt-v funktioniert nur mit den einfachsten Inhalten (Zeilenumbrüche und Einrückungen können wirklich falsch werden, wenn Sie im Terminal sind, und Sie vergessen zu verwenden set :paste). - rsenna


  1. Wenn Sie Inhalte kopieren möchten innerhalb derselben Datei, benutzen yank und paste.

  2. Wenn Sie Inhalte kopieren möchten über Terminals, öffne die erste Datei, rufe den gewünschten Text und öffne dann deine zweite Datei innerhalb von vim (z.B. :tabnew /path/to/second/file) und drücke p um es einzufügen.

  3. Wenn Sie Inhalte kopieren möchten von vim zu einem externen Programm, müssen Sie auf die System-Zwischenablage 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-Zwischenablage-Unterstützung suchen.

    Geben Sie in der Konsole Folgendes ein:

    $ vim --version | grep xterm
    

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

    1) Kompiliere dich selbst mit dem Flag "xterm_clipboard"

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

    Wenn Sie jetzt einen Text in das + -Register in Ihrem vim-Editor (z. B. "+ yy") ziehen, wird er auch in die System-Zwischenablage kopiert, die Sie von Ihrem externen Programm wie dem gedit-Editor abrufen können Strg+V.

  4. Wenn Sie Inhalte kopieren möchten von einem externen Programm in vim, kopiere zuerst deinen Text in die System-Zwischenablage Strg+Cdann im vim editor Einfügemodus, drücke den Maus mittlerer Knopf (normalerweise das Rad) oder drücken Strg+Verschiebung+V einfügen.

    Dies sind 4 grundlegende Kopieren Einfügen Bedingungen im Zusammenhang mit vim. Ich hoffe das hilft.


23
2018-02-20 05:53



Was ist der Sinn von: tabnew / Pfad / zu / Sekunde / Datei? Sie können genau dasselbe erreichen, indem Sie die erste Datei zischen / kopieren / ausschneiden, indem Sie die zweite Datei mit: vi / path / to / second / file und Einfügen (p / P) darin öffnen. Zumindest in meinem Fall ... Oder liegt es daran, dass ich die vim-Funktion + xterm_clipboard aktiviert habe? Oder gibt es mehr als nur das Tabu? - Cbhihe
Auf Ubuntu vim-gtk hat xterm_clipboard Unterstützung und auf Fedora xvim hat es. - icc97


Ich benutze immer Verschiebung+Einfügen wenn ich Text in das Terminal einfügen möchte, funktioniert das in allen Terminalprogrammen.

(Das ist auch der Grund, warum ich nie einen Laptop bekomme, wo man nicht drücken kann Einfügen ohne einen sekundären Schlüssel zu drücken)


15
2018-02-17 16:59



Vi/Vim ! = Terminal;) - 0xC0000022L
ok ok, aber es funktioniert immer noch :) - Magnus Jonsson
+1 für das .. Was benutzt du um zu sagen Ctrl+A,Ctrl+C ebenfalls ? - Arup Rakshit
Wenn ich ein Terminal in einem DE verwende, wähle ich normalerweise einfach Text mit der Maus aus und kopiere mit Strg + Shift + C. - Magnus Jonsson
Shift + Insert funktioniert auch in gvim. (Ich benutze Ubuntu 13.10, wenn das einen Unterschied macht.) - eksortso


Benutze die Zentriertaste der Maus um Text einzufügen, den Sie an anderer Stelle hervorgehoben haben.

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

Muss sich im Bearbeitungsmodus für Vim befinden.


10
2018-02-16 16:09





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.


5
2018-02-17 06:34



Ich dachte, es wäre Kleinschreibung i. Was macht Großbuchstaben? I machen? - Flimm
@ Flimm das wurde schon in einem Kommentar von Ben Mordecai auf eine andere Antwort erklärt. - sierrasdetandil
Ich habe die Antwort in Kleinbuchstaben bearbeitet i. Großbuchstaben I Verschiebt den Cursor an den Anfang der Zeile, bevor der Eingabemodus aufgerufen wird, der hier nicht benötigt wird. - Flimm


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

(benutze das folgende in der 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 ein yy oder geben Sie ein Y

So kopieren Sie 2 Zeilen in vi:

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

(Ebenso können beliebig viele Zeilen kopiert werden)

So kopieren Sie alle Zeilen vom aktuellen Speicherort an das Ende der Datei:

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

So kopieren Sie den gesamten Text vom aktuellen Speicherort an das Ende des aktuellen Wortes:

  • Bewegen Sie den Cursor im Befehlsmodus an den Ort, von dem Text kopiert werden soll, und geben Sie ein yw

So kopieren Sie den gesamten Text vom aktuellen Speicherort bis zum Ende der Zeile:

  • Bewegen Sie den Cursor im Befehlsmodus an den Ort, von dem Text kopiert werden soll, und geben Sie ein y$

Einfügen (PUT)

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

  • Geben Sie im Befehlsmodus ein p

Einfügen von Text in die Zwischenablage Vor die Position des Cursors:

  • Geben Sie im Befehlsmodus ein P

3
2017-11-03 21:43





Wenn du bist Wurzel: Strg+Verschiebung+V

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


0
2017-07-01 06:54





Ich wollte nur darauf hinweisen, dass Sie Vim via Git Bash unter Windows einfach verwenden können p oder mit der mittleren Maustaste klicken, ohne im Einfügemodus zu sein. Verwenden von Vim durch KittSie können einfach mit der rechten Maustaste klicken. Und Hervorhebung macht das Kopieren.

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

Weitere hilfreiche Befehle:

  • Ja(Anzahl der Zeilen) - ziehen (kopieren)
  • dd(Anzahl der Zeilen) - löschen
  • p - Zeile unterhalb der aktuellen Zeile einfügen
  • Verschiebung + p - Linie über der aktuellen Linie einfügen
  • u - rückgängig machen
  • r - Wiederholen
  • ich - Modus einfügen
  • v - visueller Modus

0
2017-07-21 03:27