Copy-Paste für vim funktioniert nicht, wenn die Maus (: set mouse = a) eingeschaltet ist?

Ich habe versucht, etwas von vim in eine andere Anwendung und von dieser Anwendung in vim zu kopieren Rechtsklick mit der Maus und dann kopieren und einfügen (oder mit Strg + v und Strg + c und auch versucht natürlich die Command -Version für Mac OSX.). Wenn ich es versuche, kopiert es jedoch nur das erste Wort, wenn ich es von vim mache oder wenn ich von der Anwendung nach vim, es kopiert alles, fügt aber seltsame Tabulatoren und Leerzeichen ein. Ich glaube, das ist passiert, als ich mich entschlossen habe, meine Maus im Terminal einzuschalten. Wie in:

:set mouse=a 

Ich habe diese Zeile in meiner .vimrc -Datei auf iTerm (mac os x). Ist es jedoch möglich, meine Kopie mit anderen Anwendungen einzufügen, die nicht in vim enthalten sind, um nicht mit mouse=a zu brechen? Oder ist es zumindest möglich, meine Maus auszuschalten, während ich kopiere und einfüge? Ich habe :help Maus gemacht, aber die Kommentare waren für mich nicht nützlich. Ich würde sie hier einfügen, aber … mein Kopier- und Einfügetool ist defekt!

Ich habe versucht, :set mouse! und :set mouse=a! aber diese haben nichts Nützliches getan … 🙁


Zusätzliche Informationen zu meiner Umgebung:

Ich verwende die meiste Zeit auch tmux, habe diesen Fehler jedoch getestet / bug ohne tmux-sitzung, deshalb habe ich dies hauptsächlich als vim-frage gepostet.

Kommentare

  • Ich kann Ihnen sagen, dass vim kann mit dem Verb y problemlos zur Primärauswahl ziehen. Ich weiß es nicht ‚ warum Sie ‚ nicht einfach das verwenden würden.
  • Ich würde ‚ das nicht tun, weil ich keine ‚ Ich glaube, ich weiß nicht, wie ich das machen soll. Ich entschuldige mich für meine Inkompetenz. ‚ wusste nicht einmal, dass es das gab, bis Sie es erwähnt haben. Bitte teilen Sie Ihre Wissen! 🙂
  • Ist das macvim ?
  • Nein, es ist nicht nur iTerm (wie ich in der Frage erwähnt habe, aber eine gute Frage).
  • @Pinocchio – schauen Sie hier: Wie vim einfügen aus der Zwischenablage des Systems ‚? .

Antwort

mouse=a verhindert das Kopieren und Einfügen aus vim mit lesbaren Zeichen.

Ändern Sie mouse=a bis mouse=r und das sollte Ihr Problem damit beheben.

Ich frage mich, ob Sie die Konfigurationsdatei für Ihr vim mit der Maus auf mouse = a ändern.

Originalantwort ^

Wenn mouse=r gibt Ihnen nicht alle Optionen zum Kopieren in der Vergangenheit. Ändern Sie diese in mouse=v

Beide mouse=r und mouse=v haben dieselben Funktionen, die Sie benötigen, aber je nach verwendetem vimrc funktioniert eine besser als die andere.

Kommentare

  • haben Sie auch versucht, den Text hervorzuheben und mit der mittleren Maustaste an einer anderen Stelle einzufügen. Dies funktioniert normalerweise besser, wenn Sie zu Strg + v und Strg wechseln + c
  • Ich ‚ weiß nicht, was Ihre Frage bedeutet: one thing I am wondering is, are you changing the config file for your vim with the mouse set to mouse=a? Sie meinen, wenn ich :mouse=a in meiner .vimrc-Datei aktiviert? Ich habe :mouse=a in meiner .vimrc-Datei.
  • nur --with-x=yes? Ich muss nicht :set --with-x=yes mouse=a oder etwas anderes eingeben ing? Können Sie klarstellen, was Sie meinen?
  • Lassen Sie mich untersuchen, ob Sie --with-x=yes mit set mouse=a kombinieren müssen. Als ich es las, sah ich nur, dass es von selbst in der Konfigurationsdatei war. Aber es könnte auch anders sein, deshalb möchte ich sicherstellen, dass ich Ihnen das Richtige sage, das für Sie funktioniert.
  • Vielen Dank, dieser Vorschlag funktioniert wie ein Zauber mit mouse = v

Antwort

Für OS X-Benutzer: Zum Kopieren Einfügen mit mouse=a verwenden Sie alt anstelle von Shift , um den Text auszuwählen. Dann funktionieren cmd-c und cmd-v wie erwartet.

Diese Antwort finden Sie hier https://stackoverflow.com/a/4608387/671639 nach viel googeln.

Kommentare

  • Du bist Gott … …: ‚)
  • das einzige, was für mich funktioniert hat, danke!
  • Für mich unter OSX funktioniert “ fn “ anstelle von “ shift “ oder “ alt „.
  • Die Einstellung mouse=v funktionierte für mich mit cmd + c

Antwort

Von https://stackoverflow.com/questions/4608161/copy-text-out-of-vim-with-set-mouse-a-enabled/4608387

Drücken Sie die Umschalttaste, während Sie mit der Maus auswählen. Dadurch verhält sich die Mausauswahl so, als ob mouse = a nicht aktiviert wäre.

Dies funktioniert und wurde von Überprüfern des Stapelüberlaufs überprüft, die dies als Antwort akzeptiert haben 🙂

Antwort

Hatte das gleiche Problem: konnte nicht mit der Maus markieren, konnte also nicht aus VIM in einer Terminalsitzung in ein Windows-Dokument und einen Browser kopieren und einfügen: Folgendes und es funktioniert jetzt:

: set clipboard=unnamedplus : set mouse=r 

Antwort

Bharaths Lösung , wenn Sie beim Kopieren die Umschalttaste drücken, wird dies tun, aber es wird mehr kopiert, als Sie im Falle einer Nummerierung kopieren möchten oder Hash-Kommentare.

Eine Möglichkeit, dies auch mit mouse = a zu tun, ist die Verwendung des visuellen Modus von Drücken Sie V für einen einzelnen Cursor oder Shift + V für die Hervorhebung der vollständigen Zeile. Sie können sich mit Pfeilen nach oben oder unten bewegen und Y verwenden zum Kopieren oder D zum Schneiden und th at sollte funktionieren.

Kommentare

  • @Anthon, wird es tun, danke für die Klarstellung.
  • Ich habe Ihr Selbst umformuliert. Ausgesprochener Kommentar, um es eher wie eine Antwort zu machen, so dass die Mods es wahrscheinlich so lassen, wie es ist (und Sie könnten einen gewissen Ruf darauf erlangen, damit Sie einen Kommentar abgeben können). Wenn das Original eine kleinere Korrektur gewesen wäre, wäre das Kommentieren angemessener gewesen.

Antwort

Siehe: http://vimdoc.sourceforge.net/htmldoc/options.html

Siehe Abschnitt „Hinweis“ am Ende der Referenz:
Wann Wenn Sie die Maus aktivieren, können Sie die Maustasten weiterhin verwenden, indem Sie die Umschalttaste gedrückt halten. Dies umfasst das Kopieren und Einfügen mit den Maustasten.

*"mouse"* *E538* "mouse" string (default "", "a" for GUI, MS-DOS and Win32) global {not in Vi} Enable the use of the mouse. Only works for certain terminals (xterm, MS-DOS, Win32 |win32-mouse|, QNX pterm, *BSD console with sysmouse and Linux console with gpm). For using the mouse in the GUI, see |gui-mouse|. The mouse can be enabled for different modes: n Normal mode v Visual mode i Insert mode c Command-line mode h all previous modes when editing a help file a all previous modes r for |hit-enter| and |more-prompt| prompt Normally you would enable the mouse in all four modes with: :set mouse=a When the mouse is not enabled, the GUI will still use the mouse for modeless selection. This doesn"t move the text cursor. See |mouse-using|. Also see |"clipboard"|. Note: When enabling the mouse in a terminal, copy/paste will use the "* register if there is access to an X-server. The xterm handling of the mouse buttons can still be used by keeping the shift key pressed. Also see the "clipboard" option. 

Kommentare

  • Vielen Dank, dass Sie diese Referenz beigesteuert haben, aber , beantwortet es die Frage ? Wenn ja, können Sie den Teil des Zitats identifizieren, der dies tut, und eine Zusammenfassung der tatsächlichen Antwort anzeigen?

Antwort

Auf meinem Mac haben diese beiden Dinge geholfen:

  • : Setzen Sie mouse- = a
  • fn + click (anstelle von Shift oder Alt)

Antwort

Verwenden Sie diese beiden Zeilen in Ihrer ~/.vimrc Alle netten Funktionen eines gui-mouse und Einfügen in die System-Zwischenablage mit y (Taste ziehen), wenn Sie keine zusätzlichen Zwischenablage-Puffer benötigen :

set mouse=a set clipboard=unnamed 

Antwort

Sie können y zum Kopieren (yank) und p zum Einfügen, auch wenn :set mouse=a in ~/.vimrc festgelegt ist. Verwenden Sie v + arrow keys, um den Text hervorzuheben. Um eine ganze Zeile schnell zu kopieren, verwenden Sie shift + y .

Antwort

Wie f oder im zweiten Teil Ihrer Frage, in dem Sie angegeben haben, dass beim Einfügen aus anderen Anwendungen in vim Tabulatoren / Leerzeichen hinzugefügt werden. Versuchen Sie, dies zu Ihrer ~ / .vimrc-Set-Paste oder in vim hinzuzufügen, bevor Sie im normalen Modus einfügen. Drücken Sie „Shift“ + „:“ und geben Sie „Set-Paste“ ein.

Antwort

Zwei Dinge, die hinzugefügt werden müssen:

  1. Seien Sie sich oft bewusst, dass set mouse=v je nach dem nicht wie erwartet funktioniert Bei anderen Anweisungen, die Sie zuvor oder nachher in Ihrer .vimrc -Datei festgelegt haben, hängt dies auch davon ab, von welchem Terminal aus Sie vim ausführen.
  2. Ich würde empfehlen, mouse=a Sie haben also alle Mausmodi gleichzeitig aktiviert und verwenden den von @BHS vorgeschlagenen Trick, um Text hervorzuheben, während Sie die Umschalttaste drücken, wenn Sie den markierten Text mit der mittleren Maus einfügen müssen Schaltfläche ( Kopieren von Text außerhalb von Vim mit set mouse=a aktiviert ).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.