Ich habe zwei Dateien in vim geöffnet, jede in einem TMUX-Fenster. Ich möchte 10 Zeilen von einer Datei in eine andere kopieren.
Wie kann ich das erreichen, ohne die Maus zu benutzen Copy
-> Paste
?
vim
tmux
copy-paste
Patryk
quelle
quelle
:w /tmp/lines
, dann:r /tmp/lines
in der anderen Instanz). Wenn Ihr Vim weiß, wie er mit der Systemablage kommuniziert, können Sie die temporäre Datei mit den Registern+
oder*
umgehen.Antworten:
Sie müssen tmux-Verknüpfungen verwenden. Angenommen, Ihre tmux-Befehlsverknüpfung ist die Standardeinstellung: Ctrl+ b, dann:
Ctrl+ b, [Kopiermodus aktivieren (?).
Zum Anfang / Ende des hervorzuhebenden Texts bewegen.
Ctrlspace
Markieren Sie Text (unter Arch Linux). Wenn ich unter OSX und anderen Linux- SpaceBetriebssystemen tmux aus dem Quellcode kompiliert habe, funktioniert das normalerweise nur für sich. Der ausgewählte Text ändert die Farben, sodass Sie wissen, ob der Befehl funktioniert hat.
Zum Kopieren an das andere Ende des Textes verschieben.
Alt+ wKopiert den ausgewählten Text in die Zwischenablage von tmux. (Auf Mac Esc+ verwenden w.)
Bewegen Sie den Cursor in das gegenüberliegende TMUX-Fenster oder in ein völlig anderes TMUX-Fenster. Setzen Sie den Cursor an die Stelle, an der Sie den gerade kopierten Text einfügen möchten.
Ctrl+ b, ]Kopierten text aus der tmux zwischenablage einfügen.
tmux ist ziemlich gut darin, Befehle benutzerdefinierten Tastaturkürzeln zuzuordnen.
Siehe Ctrl+ b, ?für die vollständige Liste der eingestellten Tastaturkürzel.
quelle
screen
Verknüpfungen verwenden:Ctrl + A [
(Kopiermodus aktivieren),Space
(Hervorheben starten),Enter
(Hervorheben beenden),Ctrl + A ]
(Einfügen).Enter
Schlüssel ersetzt werden, wenn Sie über vi- Tastenzuordnungen verfügen .Leider kann ich zu Alex Leachs Antwort noch keinen Kommentar hinzufügen. Daher werde ich hier einen Nachtrag für Mac OS X-Benutzer einfügen:
quelle
byobu
/tmux
mit allen Standardeinstellungen, dies hat funktioniert, Alt + w nicht.Wenn Sie vim und tmux unter macOS verwenden (Getestet unter macOS 10.12.2, tmux 2.3):
(Angenommen, die Präfix-Tastenkombination von tmux lautet prefix. Das Präfix lautet standardmäßig ctrl+ b.)
quelle
Ich verbinde mich mit meinem CentOS-Server auf einem Windows-Computer mit dem ZOC-Terminal-SSH- Client. Folgendes funktioniert bei mir:
<prefix>
+[
<Space>
<Enter>
<prefix>
+]
quelle
Sie können die System-Zwischenablage mit "* y" und "* p" anstelle der normalen Zeichen "y" und "p" verwenden.
quelle
"+2yy
- zwei Zeilen in die X11-Zwischenablage kopieren"+dd
- eine Zeile in die X11-Zwischenablage ausschneiden - die X11-Zwischenablage"+p
einfügenh,j,k,l
um Ich habe auch manchmal auf meiner Ubuntu-VM gesehen, dass das "+" - Register aus einem unbekannten Grund verschwindet. Um zu überprüfen, ob Sie das+
Register haben, können Sie:reg
"+
y
undp
to"+y
und neu zuordnen würden"+p
?Wenn Sie
vim
geöffnet haben, ist es besser, den vim copy paste zu verwenden, um Text zu kopieren.Tmux Copy Paste wird funktionieren, es gibt jedoch einige Nachteile.
Wenn Sie mehrere Textzeilen kopieren, müssen Sie zunächst mehrere Zeilen auswählen. Tmux copy paste versteht normalerweise nicht, dass
vim
es Zeilennummern oder Markierungen in der Vim-Rinne gibt (z. B. relative Zahlen / absolute Zahlen). Infolgedessen werden auch diese kopiert.Zweitens habe ich festgestellt, dass wenn der Text eine bestimmte sprachspezifische Formatierung hat und Sie direkt versuchen, Paste mit tmux zu vim zu kopieren, dies die Formatierung durcheinander bringt. Dies kann durch die Verwendung von vermieden werden
set paste!
. Dies erfordert jedoch viel mehr Arbeit.Verwenden Sie
"+y
zum Kopieren und"+p
einfügenVim
Bietet nativ eine Methode zum Kopieren und Einfügen zwischen dem VIM-Puffer und der System-Zwischenablage. Verwenden Sie dazu entweder"+y
oder"*y
. Dann mit"+p
oder einfügen"*p
. Dadurch wird vermieden, dass die relativen Zahlen in die Rinne oder andere zufällige Markierungen kopiert werden, die für vim nicht relevant sindquelle
Ein paar Optionen für vim, da die tmux-Verknüpfungssequenz etwas lang ist und ich mich nur schwer erinnern kann
Wie die Antworten oben gesagt können Sie verwenden
"+y
und"*y
zu kopieren und dann"+p
und"*p
jeweils einzufügen. Wenn Sie möchten, dass vim standardmäßig die Zwischenablage verwendet, können Sie diese direkt verwendeny/p
.Quelle für den Zwischenablage-Befehl: https://vi.stackexchange.com/questions/84/how-can-i-copy-text-to-the-system-clipboard-from-vim
quelle