Для того, щоб скопіювати текст у буфер обміну X у tmux, я зараз це:
- перейти в режим вибору за допомогою prefix[
- почати вибір з space(використовуючи
mode-keys vi
btw) - виберіть текст і натисніть enter
- скопіюйте буфер tmux в буфер обміну за допомогою prefixctrl+c
(У мене є відображення як bind C-c run "tmux show-buffer | xclip -selection clipboard -i"
Я намагаюся усунути деякі з цих кроків, зробивши відображення для режиму вибору. Я намагався:
bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
що дає мені і помилку:
.. usage: bind-key [-cnr] [-t key-table] key command [arguments]
(Не вдалося скопіювати помилку)
як я можу це виправити?
EDIT: Я зрозумів, що можу вибрати та скопіювати в буфер tmux (перші 3 кроки) за допомогою миші так само, як і звичайний вибір (хоча виділення не триває, він все одно вибирає текст), а потім скористатись наступним прив’язкою для копіювання до буфера обміну x :
bind-key -n C-c run "tmux show-buffer | xclip -selection clipboard -i"
(Я використовував цей метод, щоб скопіювати цей текст, і це було легко;)
зауважимо, що -n
позначає "немає префікса", тому не потрібно виконувати жодних пробіг. якщо вас не бентежить зникаюча родзинка, це аналог звичайному (загальноприйнятому користувальницькому інтерфейсу) копіюванню.
це найкраще, що я придумав дотепер ..
EDIT2: виявилося, що ctrl+cперекривається річ з перериванням процесу, тому я зараз змінив ctrl+alt+c. (це не дуже сподобалось)
EDIT3: tmux 1.8 або ін. Додана підтримка для додавання вкладених клавіш в режимі копіювання, тому тепер мій перший оригінальний намір можливий, використовуючи щось на кшталт:
bind-key -tvi-copy y copy-pipe "xclip -selection clipboard -i"
bind-key -tvi-copy enter copy-pipe "xclip -selection clipboard -i"
Ці два вкладення дозволяють копіювати текст у буфер обміну, коли я використовував, enterабо yзакінчувати копіювання.
Я все ще зберігаю цей рядок у випадку, якщо я виконую копіювання за допомогою миші та вирішую пізніше отримати вміст буфера tmux у буфер обміну:
bind-key y run "tmux show-buffer | xclip -selection clipboard -i"
^c
ключем переривання, оскільки використовую його частіше, ніж копіюю. Я також оновив відповідь, щоб відобразити моє поточне рішення цієї проблеми.
bind-key -t vi-copy C-c run "tmux show-buffer | xclip -selection clipboard -i"
прямому ефірі:Unknown command: run
bind-key C-c run "tmux show-buffer | xclip -selection clipboard -i"
працює просто чудово.
stty intr=^Z
. Будьте обережні з цією командою, можна встановити звичайний символ як символ переривання (якщо ви це зробите, використовуйте ctrl-v, щоб ввести його до виправлення налаштування). І не плутайтесь у тому, який ключ використовується (наприклад, ctrl-z - це звичайно ключ призупинення).