807 Stimmen

Alle Zeilen in die Zwischenablage kopieren

Gibt es eine Möglichkeit, alle Zeilen aus der geöffneten Datei in die Zwischenablage des VI-Editors zu kopieren? Ich habe versucht yG aber es verwendet nicht die Zwischenablage, um diese Zeilen zu speichern.

Ist es also möglich?

1 Stimmen

1 Stimmen

Wenn Sie Windows verwenden und yank nicht funktioniert, lesen Sie die 17. Antwort von oben: stackoverflow.com/questions/1620018/

978voto

Rook Punkte 57113

使用する。

:%y+

um alle Leinen loszureißen.

Erläuterung:

  • % um den nächsten Befehl auf alle Zeilen zu beziehen
  • y um diese Leinen zu zerreißen
  • + zum Kopieren in die Systemzwischenablage

NB : Unter Windows, + y * gleichwertig sind siehe diese Antwort .

31 Stimmen

Außerdem wird die Position des Cursors nicht verändert.

2 Stimmen

@guangnan: Diese Register gibt es nicht in vi, sondern nur in vim. Versuchen Sie, Folgendes einzugeben :help um sicherzustellen, dass Sie sich tatsächlich in vim befinden.

7 Stimmen

Ich musste set clipboard=unnamed aber dann hat das super funktioniert!

813voto

Christian C. Salvadó Punkte 763569

Sie sollten den Text in den * o + Register :

gg"*yG

Erläuterung:

  • gg um den Cursor auf das erste Zeichen der Datei zu setzen
  • "*y um einen "yank"-Befehl an das Register zu starten * von der ersten Zeile an, bis...
  • G um zum Ende der Datei zu gelangen

12 Stimmen

Wie markieren Sie den Text so, dass er wie Tasten aussieht? Das habe ich bei SO noch nicht gesehen.

22 Stimmen

Hallo... es funktioniert nicht... die Daten in der Zwischenablage bleiben unverändert. wenn ich gg eingebe, geht der Cursor in die erste Zeile... aber wenn ich "*yG" eingebe, piept der Prozessor bei *... ist das normal oder ein Problem mit meinem Vim? Ich bin auf Ubuntu...

2 Stimmen

Haben Sie Deadkeys aktiviert (wenn Sie z. B. 'a' drücken, erhalten Sie á)? Wenn ja, müssen Sie die Leertaste nach " .

112voto

Brian Punkte 27876

Auf Mac

  • Ausgewählten Teil kopieren: Text visuell markieren (Typ v o V im Normalfall Modus) und geben Sie :w !pbcopy

  • Kopieren der gesamten Datei :%w !pbcopy

  • Vergangenheit aus der Zwischenablage :r !pbpaste

7 Stimmen

Funktioniert reibungslos. Eine Erklärung der Befehle wäre wirklich nett.

8 Stimmen

@Geo pbcopy ist ein Mac-Dienstprogramm. Unter Linux, xsel könnte stattdessen funktionieren, oder clip unter Windows.

1 Stimmen

Das funktioniert nicht, wenn die Datei länger als die Höhe Ihres Terminals ist.

98voto

Zack Punkte 819

Eine andere einfache Möglichkeit, die gesamte Datei zu kopieren, wenn Sie Probleme mit dem VI haben, ist die Eingabe von "cat filename". Die Datei wird als Echo auf dem Bildschirm angezeigt, und dann können Sie einfach nach oben und unten scrollen und kopieren/einfügen.

2 Stimmen

E603: :catch ohne :try

2 Stimmen

Und wenn Sie das tun wollen, ohne vim zu verlassen, können Sie den folgenden Befehl ausführen: :!cat % . Und um den Inhalt der Datei programmatisch in die Zwischenablage unter Mac OS zu kopieren: :!cat % | pbcopy

0 Stimmen

Ich musste eine Datei von einer Ubuntu-VM auf Windows zu Debian in GCP kopieren, die in einem Browserfenster geöffnet wurde... :/ Variationen von vim yanking funktionierten nicht, dies funktionierte, um die Datei in Windows einzufügen und dann in GCP hochzuladen.

68voto

Tordek Punkte 10315

Die Zwischenablage ist ein Puffer + . Um in die Zwischenablage zu kopieren, gehen Sie wie folgt vor "+y und [Bewegung].

Also, gg"+yG wird die gesamte Datei kopiert.

Gleiches gilt für das Einfügen aus der Zwischenablage, "+p

4 Stimmen

Um es gleich vorwegzunehmen (4 Jahre später...), dies hat den kleinen Nachteil, dass die Cursorposition an den Anfang der Datei springt. Um dies zu vermeiden (z.B. wenn Sie dies einem Kürzel in Ihrer vimrc zuordnen), können Sie etwas tun wie: mqgg "+yG`q

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X