Von Vim kann nicht in die Zwischenablage kopiert werden

28

Ich verwende Vim 7.3 unter Linux Mint 13 (mit MATE) und kann keinen Text in der System-Zwischenablage speichern. Ich starte Vim im Terminal und kopiere den Text vom Terminal mit CTRLINSERT. Wenn ich Text in Vim auswähle (entweder mit der Maus oder im visuellen Modus), CTRLINSERTkopiere ich keinen Text. Wenn ich mit der rechten Maustaste klicke, ist Kopieren ausgegraut. Außerdem kann ich nicht in den Systempuffer schreiben, indem ich mit vim-Befehlen in das entsprechende Register ziehe. Ich kann jedoch im Einfügemodus einfügen (mit SHIFTINSERToder Rechtsklick einfügen). Mit der gleichen Technik kann ich auch Text direkt vom Terminal kopieren, nur nicht von Vim.

Hier ist meine aktuelle ~ / .vimrc . Der relevante Teil ist am wahrscheinlichsten set clipboard=autoselect,unnamed,exclude:cons\|linux. Wenn ich finishoben auf ~ / .vimrc schreibe, habe ich das gleiche Problem, daher denke ich, dass die Zeile falsch ist, aber ich habe versucht, set clipboard=unnameddasselbe Verhalten zu zeigen.

Könnte es eine andere Konfigurationsdatei geben, die das Verhalten von Vim beeinflusst? Wie kann ich meine ~ / .vimrc ändern, damit ich Text aus Vim kopieren kann?

Maksim
quelle

Antworten:

55

Ich glaube, Ihr Kopierproblem wird verursacht durch:

mouse=a 

in Ihrer .vimrc Dies versetzt Ihre vim in den visuellen Modus, wenn Sie etwas mit der Maus auswählen. Und aus irgendeinem wahnsinnigen Grund darf man im visuellen Modus nicht kopieren. Sie können dies umgehen, indem Sie die Umschalttaste gedrückt halten, wenn Sie Text auswählen, um nicht in den visuellen Modus zu wechseln, und das Kopiermenü verwenden.

oder du könntest wechseln zu:

:set mouse=v

und kopieren wird wieder funktionieren. Fügen Sie es zu Ihrer ~ / .vimrc-Datei hinzu, wenn Sie möchten, dass es dauerhaft ist


quelle
2
Während dies ihr Problem tatsächlich lösen könnte, wäre eine Erklärung, warum es funktioniert , nützlicher. Ohne es sagt Ihre Antwort nur jemandem, er solle zweimal auf den grünen Knopf drücken. Es könnte funktionieren, es könnte nicht, aber es wird sie nicht erleuchten.
Voretaq7
Danke, das hat es gelöst. Die Erklärung, die Sie nach dem Kommentar von voretaq7 hinzugefügt haben, hat auch sehr geholfen!
Dies funktioniert auch bei Cygwin.
Dave Jarvis
1
In diesem Modus wird alles hervorgehoben. Wenn Sie also ein paar Zeilen kopieren möchten, kopieren Sie auch die Zeilennummern und den gesamten Leerraum nach jeder Zeile bis zum Ende des Bildschirms. Gibt es eine Möglichkeit, nur den relevanten Inhalt auswählen zu lassen (wie funktioniert Highlight, wenn mouse=a)?
Dennis
Gute Antwort. Nur ein Plus: mehr Mausmodi hier:help mouse
Dr. Beco
10

sudo apt-get install vim-gtk wird dieses Problem wahrscheinlich für andere Googler lösen.

Ein guter alter Terminal-Vim hat keinen Zugriff auf die Zwischenablage, die Teil des X-Windows-Systems ist. Durch die Installation vim-gtkerhält vim den Zugriff, den es zum Ändern und Anzeigen der Zwischenablage benötigt.

Cory Klein
quelle
2
Funktioniert! Unter Debian Buster (derzeit im Test) habe ich vim-gtk installiert und dann über meine Befehlszeile vim in xterm die *und +-Puffer verwendet, um auf die x-Fensterpuffer zuzugreifen. Bei der Installation von vim-gtk werden die Debian-Alternativen zum Festlegen verwendet vim -> /usr/bin/vim.gtk.
RobertL
0

Das Terminal weiß nichts über die Auswahl von VIMs. Erwarten Sie also keine Hilfe. Sie müssen vim gegen X (z. B. gvim -v) bauen und dann in das +Register ziehen und daraus entfernen .

Ignacio Vazquez-Abrams
quelle
3
Das vim-gtkPaket in Ubuntu enthält Unterstützung für die Zwischenablage (auch wenn es wie vimin einem Terminal ausgeführt wird).
mgorven
Einverstanden und bestätigt auf Debian Buster (im Test) Ich habe vim-gtk installiert und dann über meine Befehlszeile vim in xterm die Puffer * und + für den Zugriff auf die Fensterpuffer x verwendet. Die vim-gtk-Installation verwendet die Debian-Alternativen, um vim -> /usr/bin/vim.gtk festzulegen.
RobertL
0

nur gvimauf Arch Linux, wenn jemand wissen will. Schauen Sie sich auch neovim(und python-neovim&& python2-neovimfür die Unterstützung von You Complete Me usw.) an.

dylnmc
quelle
Versuchen Sie es mit gvim über ssh.
Hopeseekr