Nach dem Aktivieren set mouse=a
wird innerhalb von Vim kopierter Text nicht außerhalb von Vim eingefügt. Kennt jemand einen Weg, dies zu beheben?
Wenn Sie hier mit der Maus Text auswählen, wird der visuelle Modus aktiviert und die Copy
Option im Popup-Menü deaktiviert :
vim
configuration
mouse
copy-paste
Lyuba
quelle
quelle
+clipboard
und kompiliert istmouse=a
, können Sie von / nach vim kopieren / einfügen, ohne das Terminal-Popup-Menü zu verwenden. Sie können überprüfen, obclipboard
die Verwendung mit aktiviert istvim --version
.mouse=a
keine Kompilierungsoption ist, sondern etwas in vimrc. B) Wenn vim damit kompiliert wurde+clipboard
, können Sie kopieren / einfügen, wenn:set number
es aktiviert ist, und ohne die Zahlen kopieren / einfügen , obwohl Sie möglicherweise noch einige tun müssen Zuordnungen C) Man muss VIM nicht selbst neu kompilieren, es kann auf einigen Paketmanagern, die von jedem Betriebssystem unterstützt werden, im vim aktiviert sein. Auf osx hat Brews vim es, obwohl das Standard-vim von osx dies nicht tut. Meine Antwort erwähnt diesen Bericht.xsel
funktioniert die Installation auch für Sie. Sie können Text mit dem Editor oder mit der Maus auswählen undctrl+c
drücken, um Text zu kopieren. Dies gilt übrigens für neovim, github.com/neovim/neovim/issues/7945#issuecomment-361970165Antworten:
Drücken Sie, shiftwährend Sie mit der Maus auswählen. Dadurch verhält sich die Mausauswahl so, als wäre sie
mouse=a
nicht aktiviert.Hinweis: Dieser Trick gilt auch für "Einfügen der mittleren Schaltfläche": Wenn Sie Vim-Text einfügen möchten, der außerhalb ausgewählt wurde, drücken Sie, shiftwährend Sie auf die mittlere Schaltfläche klicken. Stellen Sie einfach sicher, dass der Einfügemodus aktiviert ist, wenn Sie dies tun (möglicherweise möchten Sie auch
:set paste
unerwartete Effekte vermeiden).OS X (Mac): Halten Sie die Alt / Option gedrückt, während Sie ( Quelle ) auswählen.
quelle
Fn
Schlüssel ist der richtige Weg zu gehen. Dh (mitmouse=a
Aktivierung) Text auswählen, während Sie dieFn
Taste drücken , und dann CMD + C verwenden, um zu kopieren und an eine beliebige Stelle einzufügen.Verwenden Sie ", +, ynach einer visuellen Auswahl. Sie sollten den Kopierbefehl des Terminals sowieso nicht verwenden, da dadurch kopiert wird, was das Terminal anstelle des eigentlichen Inhalts sieht. Hier ist was das macht:
+
für das nächste Löschen, Ziehen oder Setzen genannte Register zu verwenden . Das genannte Register+
ist ein spezielles Register, es ist das X11-Zwischenablage-Register. (Auf anderen Systemen würden Sie*
stattdessen verwenden, denke ich, sehen:help clipboard
und:help x11-selection
)Sie könnten es so abbilden:
Markieren Sie dann etwas mit der Maus und drücken Sie, Control-Cum es zu kopieren.
Diese Funktion funktioniert nur, wenn Vim mit der
+xterm_clipboard
Option kompiliert wurde . Laufen Sievim --version
, um herauszufinden, ob es hat.quelle
"*y
abhängig vom Betriebssystem.+clipboard
? Und was ist+clipboard
mitxterm_clipboard
off?Anstelle der
set mouse=a
Verwendungset mouse=r
in .vimrcquelle
Verwenden Sie unter OSX fnanstelle von shift.
quelle
option
Schlüssel, deralt
Schlüsseläquivalent auf MacOS-Host ist. Es war jedoch ein Remote-Terminal auf debian9. funktionierte nicht durch Hinzufügen vonset mouse=a
/set mouse=r
in/etc/vim/vimrc
auf der Fernbedienung.In Ubuntu ist es möglich, die X-Term-Kopier- und Einfügebindungen in VIM (Strg-Umschalt-C & Strg-Umschalt-V) für Text zu verwenden, der mit der Umschalttaste hervorgehoben wurde.
quelle
Eine weitere OSX-Mac-Option ist das Deaktivieren
View->Allow Mouse Reporting
(oder Drücken von ⌘-R zum Umschalten). Auf diese Weise können Sie zwischen Mausinteraktion und Mausauswahl wechseln . Dies kann hilfreich sein, wenn Sie einige Bits auswählen und kopieren / einfügen, da Sie keine haben eine Modifikatortaste gedrückt halten, um dies zu tun.Hinweis für Multiline mit Zeilennummern:
Normalerweise sind Zeilennummern aktiviert, sodass auch die Zeilennummern kopiert werden, wenn Sie mehrere Zeilen auswählen. Wenn Sie mehrere Zeilen ohne die Zeilennummern kopieren möchten, deaktivieren Sie die Nummern mit
:set nonu
und können Sie:set nu
sie nach dem Kopieren wieder aktivieren.quelle
Sie können
:set mouse&
in der vim-Befehlszeile das Kopieren / Einfügen von Text aktivieren, der mit der Maus ausgewählt wurde. Sie können dann einfach die mittlere Maustaste verwenden oder shiftinserteinfügen.quelle
:set number
dann Zahlen hervorgehoben. Also nicht viel Gutes. Sie machen also das Gute rückgängig, das vonset mouse=a
Kompilierungseinstellungen, mit denen vim kompiliert wurde, sind Teil des Problems.
vim --version
zeigt diese.In OSX hat das Standard-Vim
-clipboard
Aber Sie brauchen+clipboard
Auf osx können und sollten Sie anscheinend generell macvim verwenden. Sie können das tun,
brew cask install macvim
was man hat+clipboard
.Sie haben zwei Vims.
Wenn Sie vim ausführen, wird macvim ausgeführt, da cos
/usr/local/bin
sich/usr/bin
im Pfad befinden sollte, obwohl Sie dies überprüfen könnenwhich vim
.vim ausführen (um macvim auszuführen) ist in Ordnung, aber Sie können vi macvim 'cos zuordnen, andernfalls bleibt das Ausführen von vi auf dem Standard-vim! Sie können den vi sym-Link mit ln neu schreiben oder löschen (mit rm) und neu erstellen. Und um dies ohne den Fehler "Operation nicht zulässig" zu tun, müssen Sie SIL (vorübergehend) deaktivieren. Https://apple.stackexchange.com/questions/208478/how-do-i-disable-system-integrity-protection- sip-aka-rootless-on-macos-os-x .
macvim hat
+clipboard
wie gezeigt vonvim --version
Hier wird
~/.vim/vimrc
nur mit den erforderlichen Zeilen gearbeitet.Der Standard-Führungsschlüssel ist Backslash.
Ich habe einen Vorschlag gelesen, dass man den Leitschlüssel verwenden soll. (Natürlich hat die Steuerung bereits viele Schlüssel verwendet, daher war der Vorschlag, keine Steuerung zu verwenden. Ich weiß nicht, ob dies auch für die Befehlstaste gilt, aber trotzdem).
Mit dieser erwähnten Zuordnung
\c
wird ausgeführt,"+y
was aus dem als + bekannten Register in die Zwischenablage kopiert wird. Und\v
wird aus dem als + bekannten Register eingefügt.Das ist also ein Kopieren / Einfügen, das zwischen Fenstern funktioniert.
Ein anderes Betriebssystem erfordert möglicherweise
"*
eher als"+
quelle
-xterm_clipboard
. Vielleicht+xterm_clipboard
wäre a in irgendeiner Weise von Vorteil, aber für diese Lösung spielt es keine Rolle.Wenn Sie die Putty-Sitzung verwenden, wird die Auswahl automatisch kopiert. Wenn wir in vim die Option "set mouse = a" verwendet haben, wird der Text durch Auswahl mit Umschalt + Maus ziehen automatisch ausgewählt. Müssen in X-Term einchecken.
quelle
em ... Halten Sie gedrückt Shiftund klicken Sie dann mit der rechten Maustaste
quelle
Ich habe versehentlich erklärt, wie man abschaltet
set mouse=a
, als ich die Frage erneut las und herausfand, dass das OP sie überhaupt nicht ausschalten wollte. Für alle, die suchen, wie sie die Maus (set mouse=
) zentral ausschalten können , hinterlasse ich hier einen Verweis auf meine Antwort: https://unix.stackexchange.com/a/506723/194822quelle
Das Halten der Umschalttaste beim Kopieren und Einfügen mit Auswahl hat bei mir funktioniert
quelle
Fügen Sie
set clipboard=unnamed
Ihrem hinzu.vimrc
. Daher wird das Zwischenablage-Register '*' anstelle des unbenannten Registers für alle Operationen zum Ziehen, Löschen, Ändern und Setzen verwendet (beachten Sie, dass dies nicht nur die Maus betrifft).Das Verhalten des Registers '*' hängt von Ihrer Plattform ab und davon, wie Ihr
vim
kompiliert wurde (oder ob Sie es verwendenneovim
).Wenn es nicht funktioniert, können Sie es versuchen
set clipboard=unnamedplus
, aber diese Option ist nur auf X11-Systemen sinnvoll.quelle
Wenn Sie im ESC-Modus mouse = a setzen, wählen Sie den Text mit der Maus aus. Dies würde den visuellen Modus in vim aktivieren. Dann können Sie 'y' drücken, um den ausgewählten Text zu ziehen, und 'p', um ihn einzufügen, wo immer Sie möchten. Dies geschieht nur innerhalb von vim.
quelle