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"
^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.
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).