Ich versuche, Text aus vim zu kopieren und einzufügen. Ich mache v , um in den visuellen Modus zu wechseln, dann y , sobald ich meinen Block ausgewählt habe.
Es scheint, als würde der Text in die Zwischenablage von vim kopiert, da p ihn einfügt. In einem anderen Programm (z. B. Chrome) wird durch Klicken mit der rechten Maustaste -> Einfügen nicht der richtige Text eingefügt. Wie kopiere ich Text in die richtige Zwischenablage?
Antwort
Folgendes funktioniert nur, wenn vim --version
gibt an, dass Sie über die Funktion +xterm_clipboard
verfügen. Wenn nicht, müssen Sie zusätzliche Pakete installieren oder vim mit dieser hinzugefügten Funktion neu kompilieren.
Hierfür gibt es zwei Optionen:
"+y
kopiert in den „üblichen“ Zwischenablagepuffer (Sie können also mit Strg + V einfügen, mit der rechten Maustaste klicken und „Einfügen“ usw. auswählen), während
"*y
Kopien in die X11-Auswahl – Sie können mit einem mittleren Klick aus diesem Puffer einfügen.
Beachten Sie, dass "*
und "+
arbeite in beide Richtungen. Wenn Sie also Text in einer anderen Anwendung ausgewählt haben, können Sie ihn mit "*p
in vim einfügen. Wenn Sie Text kopiert haben (z. B. mit Strg-C), können Sie ihn einfügen es in vim mit "+p
.
Kommentare
- @Tshepang es funktioniert nicht mit Kitt. Was soll ich tun?
- @RahulPatil Ich weiß nicht; Vielleicht stellen Sie eine separate Frage, vielleicht auf Super User (da es ‚ ein Windows-Tool ist, wäre es willkommener dort).
- @RahulPatil – Wenn Sie Putty verwenden, bearbeiten Sie die Datei auf einem Remote-Server, nicht auf Ihrem lokalen Computer. Im Allgemeinen weiß der Remote-Server ‚ nichts über die Zwischenablage auf Ihrem lokalen Computer. Wenn Sie einen Linux-Desktop verwenden, können Sie mit X-Weiterleitung ssh (vorausgesetzt, Sie haben die X-Bibliotheken auf dem Server installiert), aber wenn Putty unter Windows ausgeführt wird, haben Sie ‚ kein X. Wird ausgeführt, damit Sie ‚ nicht weiterleiten können.
- Hallo allerseits, wie wird “ + y eingegeben? soll ich es im visuellen Modus oder im Befehlsmodus eingeben? Dumme Sache, aber ich kann es nicht herausfinden.
- @AlindBillore: Im Befehlsmodus. Drücken Sie buchstäblich die Tasten
shift'
, dannshift=
und danny
(nicht alle gleichzeitig nach dem anderen, außer natürlich den Verschiebungen).
Antwort
Wenn Sie vim> = 7.3 verwenden .74, dann können Sie dies tatsächlich in Ihr vimrc einfügen:
set clipboard=unnamedplus
Dabei wird automatisch der Puffer +
verwendet (die System-Zwischenablage) standardmäßig. Zum Ziehen (Kopieren) verwenden Sie einfach den regulären Befehl y
usw.
Ich fand dieses Verhalten jedoch ziemlich ärgerlich, da Befehle wie d
fügt den Text, mit dem sie arbeiten, in den Standardpuffer ein, was bedeutet, dass ich kein schnelles dd
ausführen und eine Zeile aus dem Internet einfügen konnte Beispiel:
Kommentare
- + ist ein Zwischenablage-Regiser
- In Bezug auf Ihren letzten Punkt
dd
bedeutet, dass “ eine Zeile “ ausschneidet, sodass dies das erwartete Verhalten ist. In dem seltenen Fall, wenn Sie möchten Um eine Zeile tatsächlich in Vergessenheit zu bringen, führt"_dd
den Trick aus. - auch, wie @HamishDowner in seiner Antwort feststellt: Folgendes funktioniert nur, wenn
vim --version
gibt an, dass Sie die Funktion+xterm_clipboard
haben. Wenn nicht, müssen Sie zusätzliche Pakete installieren oder vim mit dieser hinzugefügten Funktion neu kompilieren.
Antwort
Halten Sie die Umschalttaste gedrückt und wählen Sie Text mit dem Mauszeiger aus.
Text wird in die Zwischenablage kopiert.
Dies funktioniert auch zum Einfügen von aus der Zwischenablage in vim.
Um klar zu sein, funktioniert dies für vim
, das in einem Terminal wie xterm
ausgeführt wird.
Kommentare
- @LoopSpace für mehrzeilige Auswahlen werden auch Zeilennummern kopiert, wenn
set nu
aktiviert ist . Sie möchten also wahrscheinlich die Zeilennummern mit einer Verknüpfung umschalten oder den Befehl:set nonu
vor jeder Auswahl ausführen. - Halten Sie auf dem MAC die Optionstaste gedrückt und wählen Sie Text mit der aus Mauszeiger
- Funktioniert nicht ‚ für mich mit vim 8.0 + gnome-terminal
- Lösung nicht kompatibel mit Multipane-Begriffen wie tmux.
- Dies wird nicht in die Zwischenablage kopiert, dies wird in die primäre kopiert.Siehe die Unterscheidung in Clipboard Arch Wiki-Artikel .
Antwort
Ich finde die Standardbefehle "+gP
und "+y
sehr schwierig zu verwenden. Also habe ich Ctrl-Y
neu zugeordnet, um in die Zwischenablage zu ziehen, und Ctrl-P
, um sie aus der Zwischenablage einzufügen. Fügen Sie dies zu
nnoremap <C-y> "+y vnoremap <C-y> "+y nnoremap <C-p> "+gP vnoremap <C-p> "+gP
Antwort
Als ich mein vim überprüfte Die Zwischenablage wurde 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 und dann erneut überprüft
vim --version | grep clipboard +clipboard +insert_expand +path_extra +user_commands +emacs_tags +mouseshape +startuptime +xterm_clipboard
Jetzt kann ich mit „+ y bzw.“ + p kopieren und einfügen.
Antwort
Egal, Ich habe die Antwort gefunden – sie steht in den Menüs von vim.
"+y
Sehr intuitiv.
Kommentare
- Verwenden Sie
gvim
? - @ nozimica- yeah
- Diese ‚ ist auch in vim verfügbar, das in einem xterm oder einem ähnlichen Terminalemulator unter X ausgeführt wird (wenn vim mit der Funktion
+xterm_clipboard
kompiliert wird).
Antwort
Nur um eine nicht vim-spezifische Antwort hinzuzufügen: Sie können Ctrl+Shift+C
verwenden, um in Ubuntu in die System-Zwischenablage zu kopieren (sofern die Funktionalität von bereitgestellt wird Ihr Terminal-Emulator, Gnome-Terminal für einen stellt es zur Verfügung). Ctrl+Shift+V
fügt in ein anderes Terminalfenster ein, reguläres Ctrl+V
fügt in eine GUI-App ein.
Wenn Sie außerdem die Option auswählen Text im Terminal, dann mit der mittleren Maustaste, wird er aus der X11-Zwischenablage eingefügt.
Kommentare
- Aus irgendeinem Grund ‚ funktioniert nicht. Einfach im visuellen Modus auswählen, mit Strg-Umschalt-C kopieren und dann mit Strg-Umschalt-V in eine andere App einfügen? Der Text ‚ wird für mich nicht kopiert.
- @ ripper234: Dies funktioniert nicht, wenn Sie gvim verwenden. Wie crazy2be sagte, stammt diese Funktionalität von Ihrem Terminalemulator.
- @ ripper234: 1) Es handelt sich um eine Funktionalität, die von Ihrem Terminalemulator bereitgestellt wird (Gnome-Terminal für einen stellt sie bereit). 2) Strg + Umschalt + V. Zum Einfügen von in das Terminal verwenden GUI-Apps weiterhin wie gewohnt Strg + V. Ich ‚ werde die Antwort bearbeiten, um sie klarer zu machen.
- Wenn Sie Mousedrag mit Shift-Steuerung verwenden – wählen Sie Text aus, wird das Einfügen von Kopien aus einem Pufferfenster einfach.
Antwort
Halten Sie die UMSCHALTTASTE gedrückt und wählen Sie mit der Maus den Text aus, um ihn zu kopieren.
Fügen Sie dann ein anderes Programm mit CTRL + v
ein.
Funktioniert im Terminal meines Ubuntu 16.04. Sie sind sich nicht sicher über gvim
und andere Systeme.
Kommentare
- Das funktioniert nicht.
- kreative Antwort
Antwort
Wenn Sie standardmäßig die Light-Version von vim installieren, haben Sie nicht die +xterm_clipboard
-Funktion auf (vim --version | grep xterm
), die für die Verwendung von *
und +
registriert sich außerhalb von vim.
Um es zu aktivieren, müssen Sie vim entweder selbst kompilieren oder eine vorinstallierte Version von vim installieren. Ich habe vim-gnome verwendet: sudo apt-get install vim-gnome
. Wenn Sie vim --version | grep xterm
ausführen, sehen Sie, dass es sich jetzt um +xterm_clipboard
handelt.
Versuchen Sie nun, auf das +
und *
und es sollte funktionieren.
Antwort
Nur um hinzuzufügen, wenn etwas funktioniert, versuchen Sie, das Terminal zu wechseln, das vim umschließt (wenn Sie vim vom Terminal aus verwenden). Ich habe festgestellt, dass zum Beispiel die Zwischenablage für Guake nicht zugänglich ist, während sie vom Gnome-Terminal aus zugänglich ist.
Antwort
Für Ubuntu 14.04 und höher:
-
Wählen Sie einfach den Text aus, den Sie kopieren möchten. Klicken Sie dann mit der Maus auf die mittlere Rollentaste und wechseln Sie zur Zwischenablage
-
Und machen Sie dasselbe auch dort (klicken Sie mit der Maus auf die mittlere Rollentaste).
Es funktioniert zu 100% in beiden vim
und tail
unter Ubuntu.