Ich benutze ein Linux-System. Zwei Vims werden in zwei Terminals geöffnet. Jetzt möchte ich Text von A nach B kopieren. Eine Möglichkeit, dies zu tun, besteht darin, Text in A auszuwählen, mit der Maus zu kopieren und dann zu B zu wechseln. Im Einfügemodus fügt der Befehl <c-r>+
den Text ein.
Gibt es überhaupt eine Möglichkeit, es ohne Maus auszuführen? wie "+yy
in A, wenn auf B umgeschaltet wird o<c-r>+
? Ich habe einige Kombinationen vergeblich untersucht. Und ich suchte nach "Kopieren über Terminals", fand aber nichts.
user @statox schlägt eine Lösung im visuellen Modus vor, dh v$"+y
in A, wenn zu B gewechselt wird o<c-r>+
.
Gibt es eine einfache Möglichkeit, den Text in A zu kopieren, ohne in den v-Modus zu wechseln? Zugegeben, der Eintritt in den V-Modus erfordert nicht zu viele Schlüsselschläge. Fragen Sie sich nur, ob es einen besseren Weg gibt. Z.B. Befindet sich der Cursor in der Mitte einer Zeile, wird yy
die gesamte Zeile kopiert (um sich zu registrieren "
), während 0v$y
das Gleiche mit einem zusätzlichen Tastendruck ausgeführt wird.
Oder meine Frage kann darauf reduziert werden, ob es eine Möglichkeit mit weniger Tastenanschlägen als 0v$"+y
beim Kopieren gibt , die ich <alt-tab>o<c-r>+
zum Einfügen verwenden kann.
quelle
"+y
und in die andere vim-Instanz in das Zwischenablage-Register"+p
. Oder ein Duplikat davon ?y
mit einer Bewegung (:help motion.txt
) oder einem Objekt (:help object-select
) folgen . Wenn Sie häufig über Vim-Instanzen ziehen und einfügen, ist diese Einstellung möglicherweiseclipboard
enthaltenunnamed
oderunnamedplus
nützlich. Siehe:help 'clipboard'
. Dann sollte das Kopieren zwischen Instanzen einfach funktionieren.0v$
ist das gleiche wieV
. Und es ist einfach, ein Mapping zu erstellen für"+y
::nnoremap <Leader>y "+y
. Das reduziert es also aufV\y
.V"+y
, 4 Tastenanschläge sind.Antworten:
Sie können überprüfen, ob Vim mit Unterstützung für die Zwischenablage erstellt wurde:
Wenn die Ausgabe ist
1
, sollte Folgendes ausreichen, um Ihr Ziel zu erreichen:Sie können alles viel nahtloser gestalten, indem Sie das Zwischenablage-Register und das Standardregister mit dieser Einstellung in Ihrem
vimrc
:Wenn die Ausgabe von
:echo has('clipboard')
is0
ist, sollten Sie ein geeignetes Vim wievim-gtk
oder installierenvim-gnome
(der Name des Pakets kann von Distribution zu Distribution unterschiedlich sein).quelle
Ich denke, die Lösung, die Sie bereits in Ihrer Frage erwähnt haben, ist die richtige. Wenn Sie die Anzahl der Tastenanschläge reduzieren möchten, können Sie einfach eine Karte erstellen, z
Siehe den zweiten Eintrag hier .
quelle
Um die Antwort von @ romainl zu erweitern (mit Unterstützung für die Zwischenablage), können Sie Register verwenden, die für die systemweite Zwischenablage freigegeben sind.
Durch diese Befehle ausführen, sind Sie y Anking / Kopieren / Speicher ausgewählte Inhalte in den Registern, und p asting sie zum Ziel Vim-terminal. Diese beiden speziellen Register
+
und*
werden mit dem systemweite Zwischenablage geteilt (und damit auch vielen anderen Programmen wie Web - Browser, gedit usw.). Register+
ist dem Kopier- / Einfügepuffer zugeordnet und*
ist dem Auswahlpuffer zugeordnet (einer, der eine Kopie der Auswahl mit einem mittleren Klick auf ein Textfeld in beispielsweise Ubuntu einfügt) und kann mitctrl + v
(ctrl + shift + v
auf dem Gnome-Terminal) eingefügt werden .quelle
1) Unter Fedora verwende ich das folgende Setup:
vim-X11 wird in der Zwischenablage unterstützt - möglicherweise ist es in anderen Distributionen ähnlich.
2) Legen Sie einen Alias in meinem .bashrc fest
3) In .vimrc:
Jetzt wird der in Vim übliche Ruck in die System-Zwischenablage verschoben und jedes Strg-C außerhalb von Vim kann in Vim eingefügt werden.
quelle
Wenn Sie einen Mac (OSX) verwenden, können Sie bpcopy installieren ( weitere Informationen finden Sie unter Brew Install pbcopy - siehe http://brew.sh/ ). Führen Sie dann Folgendes aus (gerade Befehlszeile), ohne die Maus zu berühren:
BEISPIEL:
1) In TERMINAL # 001 :
2) Sie können zu Terminal Nr. 002 wechseln (ohne die Maus zu verwenden), indem Sie die in der Terminalanwendung von OSX integrierten Hotkeys verwenden: command+i
3) In TERMINAL # 002 : Öffnen Sie die neue Datei in vim
4) Versetzen Sie vim in den Einfügemodus miti
5) Fügen Sie den Text mit command+ Vaus der Zwischenablage ein (um ihn auf einem Mac aus der Zwischenablage einzufügen).
6) Genieße den Rest deines Tages!
quelle