LINUX.ORG.RU

tmux, выделение мышью, X буфер обмена

 


1

2

Крик души: Объясните мне кто-нибудь,почему из коробки ничего не работает,вечно нужно элементарные функции какими-то костылями в конфиги вставлять?

Проблемы: скопировать из окна tmux вна куда угодно копипасту. быстро. Без регистрации и смс! Просто выделив мышью, как?

Приходится разворачивать текущую панель на весь экран, отключать мышь, копипастить и включать всё в обратном порядке:

ctrl+b z
:setw -g mouse off 


Ради копипасты это очень неудобно.

Выделение и копирование во внутренний буфер вообще не знаю нахрен оно мне сдалось, если x серверу его никак не передать:

ctrl + b [ - Перейти в режим копирования
ctrl + пробел - выделяем то что хотим копировать
alt +w - помещаем скопированное в буфер
ctrl + b ] - достаем из буфера



В https://wiki.archlinux.org/index.php/Tmux_(Русский)#X_clipboard_integration

сказано: X clipboard integration
# Vim style
bind-key -t vi-copy y copy-pipe "xsel -i -p -b"
bind-key p run "xsel -o | tmux load-buffer - ; tmux paste-buffer"


Так не работает, tmux ругается на синтаксис.


Там же дано решение:
Если у вас проблемы с прокруткой клавишами Shift-PageUp/Shift-
PageDown в терминале, попробуйте следующее:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'
set -ga terminal-overrides ',xterm*:smcup@:rmcup@'


Это тоже не срабатывает. У меня вообще терминал не xterm, и привязка к конкретному терминалу ерунда какая-то.

Крик души: Объясните мне кто-нибудь,почему из коробки ничего не работает,вечно нужно элементарные функции какими-то костылями в конфиги вставлять?

Этим профессионалам aka ЧСВшникам конченным это не интересно. Они могут сделать функцию, но не в состоянии довести её до ума и оформить для пользователя, хорошо ещё, если они вообще её поддерживают. Я уж молчу о том, что эти люди не могут договориться о кнопке выхода из приложения. Просто, чтобы процесс выхода был однотипный. Хотя бы для программ из репозитория дистрибутива. Причина - отсутствие «рекомендуемых» стандартов. Опционально, «расстрел» нарушающих.

скопировать из окна tmux вна куда угодно копипасту. быстро. Без регистрации и смс! Просто выделив мышью, как?

А какой длины у тебя копипаста? «Многостраничная» ли она? По идее никак, сначала в режим выделения, потом мышкой, что сможешь через копировать/вставить. В квейке так.

Однако, можно перенаправить вывод в файл и забрать оттуда. Это странно, да.

Выделение и копирование во внутренний буфер вообще не знаю нахрен оно мне сдалось,

Из одной части окна в другую переносить текст. Например, гуглить код ошибки, мне так удобно, например.

У меня вообще терминал не xterm, и привязка к конкретному терминалу ерунда какая-то.

А что у тебя за дистрибутив и какой терминал?

anonymous ()
Ответ на: комментарий от anonymous

4.19.32-1-MANJARO, терминал tilda.

Из одной части окна в другую переносить текст. Например, гуглить код ошибки, мне так удобно, например.

Если гуглите в текстовом браузере внутри tmux, то да. А так нет.
Решил с биндингом копипасты на иксы:
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'

Но это лишние движения, я хочу просто выделить мышой и нажать Ctrl+Shift+c. Через xclip, пайпы в файлы - ещё больший изврат и верный путь к туннельному синдрому. И так периодически приходится снижать скорсоть набора и давать пальцам отдых.

hikikomori ★★ ()
Последнее исправление: hikikomori (всего исправлений: 1)
Ответ на: комментарий от hikikomori

Если гуглите в текстовом браузере внутри tmux, то да.

Дак я как раз об этом и написал.

Но это лишние движения, я хочу просто выделить мышой и нажать Ctrl+Shift+c.

А что думают на эту тему разработчики tmux? Писали им?

anonymous ()
Ответ на: комментарий от anonymous

Прокрутка мышью работает, а копипастить не даёт - косяк. Но нет не писал, не владею языками и у них и без меня думаю ящик от почты ломится. Важные занятые люди. Пошлют.

hikikomori ★★ ()
Ответ на: комментарий от hikikomori

Прокрутка мышью работает, а копипастить не даёт

Строго говоря, даёт. По крайне мере в стабильном Дебиане, по крайне мере в рамках окна. Классическое выделение + колёсико выполняют копипаст, однако. И в тильде тоже.

anonymous ()

Можно просто использовать эмулятор терминала с поддержкой кодов OSC 52. Тогда tmux будет копировать содержимое своего буфера в системный автоматически, через escape последовательности (т.е. даже через ssh). Очень удобно.
Примеры таких терминалов - iterm2, xterm, urxvt с perl плагином, kitty.

snizovtsev ★★★★ ()
Ответ на: комментарий от snizovtsev

xterm если я правильно понял о чём вы, убогий до дна дефолтный терминал иксов, там уже при голом запуске никакого контекстного меню нет. светлый не настраиваемый фон, запустил в нём tmux attach - он вообще не подхватывает сессию, выделение также не пашет. Нет, мне нравится tilda, менять удобный терминал не хочу.

hikikomori ★★ ()
Ответ на: комментарий от ananas

Здравствуйте. Человек не хочет менять терминал.

Предложение о конфиге выставленном чуть выше и вам адресуется, покритикуйте, пожалуйста.

anonymous ()

tmux yank был плагин который работает с xsel/xclip в зависимости от наличия оных.

Но я чет остановился на варианте с разворачиванием окна. Мышь - можно не отключать, просто через shift делать действие.

pon4ik ★★★★★ ()
Ответ на: комментарий от pon4ik

Забавно, никому не хочется видеть необходимую функцию в самой программе? Из-за чего, интересно, оное должно быть вынесено в отдельный плагин? Есть у кого фантазии, кроме той (моей), что разработчики не хотят пилить непосредственно tmux?

anonymous ()
Ответ на: комментарий от anonymous

Я Вас категорически поддерживаю, но как показывают десятилетия в информатике, если годы прошли, а костыли остались, то вам вместо ответа будут долго и упрямо рассказывать, почему лучше так, как есть. Пример тому vim - без плагинов им только конфиги править можно, а с их минимумом он заменяет мне среду разработки. Но каждый раз в новом хомяке надо копировать конфиг и плагины. Даже Tmux Plugin Manager не встроен до сих пор:

68 set rtp+=~/.vim/bundle/Vundle.vim
 69 call vundle#begin()
 70 Plugin 'gmarik/Vundle.vim'              " let Vundle manage Vundle, required
 71 Plugin 'scrooloose/nerdtree'            " Project and file navigation
 72 Plugin 'mitsuhiko/vim-python-combined'  " Combined Python 2/3 for Vim
 73 Plugin 'morhetz/gruvbox'                " Цветовые схемы
 74 Plugin 'Valloric/YouCompleteMe'         " Автодополнение
 75 Plugin 'jiangmiao/auto-pairs'           " авто ввод скобок
 76 call vundle#end()                       " required



А каждый раз, когда поднимаешь этот вопрос тебе со скукой в голосе предлагают запилить свой лунапарк с поэтессами форк.

hikikomori ★★ ()
Последнее исправление: hikikomori (всего исправлений: 2)
Ответ на: комментарий от hikikomori

ещё в догонку к vim и буферу x сервера.

Средствами редактора (чтобы не захватывалась нумерация строк и соседние тайлы tmux) я делаю это так:

:'<,'>!xclip -sel clip — скопировать выделение в буфер обмера X сервера. (требуется xclip)

Правда после этого надо жать u, потому, что идёт не копирование а вырезание, почему-то.

hikikomori ★★ ()
Последнее исправление: hikikomori (всего исправлений: 1)