Aby skopiować tekst do schowka X w tmux, aktualnie robię to:
- przejdź do trybu wyboru za pomocą prefix[
- rozpocznij wybór za spacepomocą (używając
mode-keys vi
btw) - wybierz tekst i naciśnij enter
- skopiuj bufor tmux do schowka X za pomocą prefixctrl+c
(Mam mapowanie jako bind C-c run "tmux show-buffer | xclip -selection clipboard -i"
Próbuję wyeliminować niektóre z tych kroków, tworząc mapowanie dla trybu wyboru. Próbowałem:
bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
co daje mi błąd:
.. usage: bind-key [-cnr] [-t key-table] key command [arguments]
(Nie mogłem skopiować błędu)
jak mogę to naprawić?
EDYCJA: Zdałem sobie sprawę, że mogę wybierać i kopiować do bufora tmux (pierwsze 3 kroki) za pomocą myszy, podobnie jak zwykłe zaznaczanie (chociaż podświetlanie nie trwa, to nadal zaznacza tekst), a następnie użyj następującego wiązania, aby skopiować do schowka x :
bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"
(Użyłem tej metody do skopiowania tego tekstu i było to łatwe;)
zwróć uwagę, że -n
oznacza „bez prefiksu”, dlatego nie ma potrzeby zmiany znaczenia. jeśli nie zmieszają Cię znikające podświetlenia, jest to analogiczne do zwykłego (zwykłego interfejsu użytkownika) kopiowania.
to najlepsze, jakie do tej pory wymyśliłem ...
EDIT2: okazało się, że ctrl+cnakłada się na proces przerywania procesu, więc zmieniłem się ctrl+alt+cna teraz. (nie bardzo to lubił)
EDIT3: tmux 1.8 lub tak dodano obsługę dodawania skrótów klawiszowych w trybie kopiowania, więc teraz moja pierwsza oryginalna intencja jest możliwa przy użyciu czegoś takiego:
bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"
Te dwa wiązania umożliwiają kopiowanie tekstu do schowka, gdy go używałem enterlub kończę ykopiowanie.
Nadal trzymam ten wiersz na wypadek, gdy kopiuję za pomocą myszy i postanawiam pobrać zawartość bufora tmux do schowka później:
bind-key y run "tmux show-buffer | xclip -selection clipboard -i"
źródło
stty intr=^Z
. Ostrożnie z tym poleceniem, możliwe jest ustawienie zwykłego znaku na znak przerwania (jeśli to zrobisz, użyj kombinacji klawiszy ctrl-v, aby wprowadzić go do momentu ustalenia ustawienia). I nie myl się z tym, który klucz jest używany (np. Ctrl-z jest zwykle klawiszem zawieszenia).^c
jako klucz przerwania, ponieważ używam go częściej niż kopiowanie. Zaktualizowałem również odpowiedź, aby odzwierciedlić moje obecne rozwiązanie tego problemu.bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
żywo daje:Unknown command: run
bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"
działa dobrze.Odpowiedzi:
Ta odpowiedź nie odpowiada bezpośrednio na twoje pytanie dotyczące tworzenia skrótu. Ale oto co robię.
Możesz tymczasowo zawiesić przekazywanie zdarzeń klawiszy / myszy do tmux przez przytrzymanie shift. Możesz więc nacisnąć i przytrzymać Shift i zwykłe skróty użytkownika terminala / X, aby wykonać kopię. W moim przypadku używając Terminatora, naciskam shift, podświetlam myszą cokolwiek chcę, kopiujęCtrl+Shift+C
W przypadku podzielonych paneli możesz powiększyć bieżący panel za pomocą klawisza przełączania zoomu Prefix + zi wykonać operację kopiowania. (testowany na tmux v1.8)
źródło
To nie odpowiada bezpośrednio na twoje pytanie, ale spójrz na tmux-yank , jak opisano w Używanie schowka systemowego w trybie vi-copy w tmux i Pobieranie tmux do kopiowania bufora do schowka . Po instalacji
źródło