LINUX.ORG.RU

Выделение произвольного текста в эмуляторе терминала без мыши

 , , , ,


0

1

Собственно сабж. Как можно без мыши выделить и скопировать выделенный текст в буфер? Тут важно абстрагироваться от запущенного в терминале приложения, будь-то tmux и запущенного в нем приложения на удаленной машине, куда мы подключились, или открытый в nano локальный файл. Вопрос именно в том, чтоб повторить shift+ЛКМ+выделение. Чтоб потом это обычным ctrl+v/ctrl+shift+v вставить в любое приложение. Неужели нет способа быстро и удобно копировать тексты их эмулятора, чтоб работать с ними в другом приложении не задействовав при этом мышь? То есть что-то вроде shift+стрелки, чтоб выделить текст, и потом его скопировать по shift+ctrl+c (либо автоматически скопировать в буфер выделенный участок)

★★

В браузерах есть «режим активного курсора» (в Firefox, например, включается по F7). В этом режиме ты курсором путешествуешь по странице и копируешь, что хочешь. Клавиатурой, да.

Я так понимаю, ты хочешь что-то подобное, только для эмулятора терминала?

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

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

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

Вообще, насколько я помню, это решается с помощью связки tmux + xclip.

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

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

У меня tmux бывает запущен на удаленных машинах, чтоб я всегда мог вернуться в сессию. И я не совсем понимаю, как будет копироваться в буфер, если я локально не запущу tmux. Но если я локально запускаю tmux и из него подключаюсь к удаленному tmux, то получается матрешка. Пока сделал кривой и временный костыль с помощью sshfs, чтоб монтировать каталог и так править конфиги в локальном редакторе (kate). Но монтировать каждый раз каждый сервер это изврат, хочется работать в терминале, а не переключаться между консолью и редактором

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

Но если я локально запускаю tmux и из него подключаюсь к удаленному tmux, то получается матрешка.

Это да, проблемка. Даже не совсем понятно, какой из тмуксов в этом случае получит вызов Ctrl+b. Скорее всего, локальный. :) — проблему с копированием это решит, но удалённый невозможно будет использовать по прямому назначению :)

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

Пока сделал кривой и временный костыль с помощью sshfs, чтоб монтировать каталог и так править конфиги в локальном редакторе (kate).

Как по мне, это вовсе не костыль, а наиболее правильный и удобный метод — использовать локальный редактор, а сохранять уже на удалённый сервер, а не посылать всё подряд по ssh. Точно так же, как и sudoedit /etc/file лучше, чем sudo vim /etc/file, только ещё и для быстродействия важно (при плохом коннекте даже vim иногда подтормаживать может).

И вообще sshfs — отличная штука, про которую многие часто забывают. Не нужно никаких самб и прочего, достаточно ssh. Я так и по локалке файлы гоняю и кинцо с домашнего сервера смотрю и т.д и т.п.

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

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

Я уже начинал гуглить в сторону эмулирования нажатия ЛКМ по хоткею, чтоб так начинать выделение текста. Но ничего не нашел.

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

Как по мне, это вовсе не костыль, а наиболее правильный и удобный метод

Ну если речь идёт именно про редактирование удалённого файла, то да.

Однако копирование текста из терминала — более широкая задача, например, может срочно понадобиться скопировать выхлоп какой-то программы, которая УЖЕ отработала («УЖЕ» намекает на то, что переназначение вывода и nohup, про которые я знаю, не всегда являются решением).

Мне кажется, такую операцию стоило бы реализовать именно на уровне эмулятора терминала, примерно, как это сделано в браузерах с «активным режимом курсора». Кстати, может в каком-то эмуляторе это уже сделано?

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

Из того что смог придумать - да, лучшее. Но мне хочется работать в рамках именно одного ПО. Того же konsole, где я переключаюсь между вкладками, чтоб работать уже либо с локальным файлом, либо другим удаленным сервером.

Ну а что мешает использовать редактор в терминале (Vim, Nano, или что угодно по вкусу, что преполагалось использовать на удалённой машине), но локально?

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

Вот вот. Мне не только с файлами работать, но и часто выхлопы копировать. Редактирование файлов 70% времени, но все же не 100%.

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

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

Да, согласен, что это более широкая задача. Где ещё так сделано — не в курсе. Думаю, все надеятся на tmux/screen, вместо реализации в эмуляторе терминала. Хотя на 80% уверен, что к тому же urxvt кто-нибудь perl-скриптом прикрутил (как например выделение ссылок и открытие оных по хоткею).

CrX ★★★★★
()

Не знаю, поможет ли…

  1. xdootool(lets you simulate keyboard input and mouse activity, move and resize windows, etc. It does this using X11’s XTEST extension and other Xlib functions.)

  2. В screen есть функции выделения/вставки. Как из его буффера послать куда-либо - другой вопрос:))

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

Первое юзал. Не то. Он слишком буквально симулирует мышь:). То есть после активации mousedown по хоткею, стрелки не текст начинают выделять, а медленно двигать сам курсор)

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

Но если я локально запускаю tmux и из него подключаюсь к удаленному tmux, то получается матрешка.

Ты на правильном пути. Всегда работаю в матрёшке из двух тмуксов, где наружний переключает хосты.

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

Удивительный с фактической точки зрения коммент.

Это да, проблемка.

Нет.

Даже не совсем понятно, какой из тмуксов в этом случае получит вызов Ctrl+b

Нет.

удалённый невозможно будет использовать по прямому назначению

Нет. Особенно если вспомнить, что префикс настраивается, но и без этого тоже можно, хоть и неудобно.

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

К сожалению матрешка не удобна. Я уже пробовал. Вернулся к тому что в konsole юзаю табы. А «табы» tmux уже для удаленной машины. tmux в tmux у меня вызывал путаницу, из-за чего я совершал ошибочные команды. Когда я ожидал выполнения команды в одном tmux, а выполнялись в другом. Делать разные комбинации это ужасное решение. Пытаться переучивать себя сейчас под два варианта комбинаций.

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

Вообще вопрос сейчас в том, как имитировать поведение shift+выделение мышью. Для меня это самый очевидный вариант работы с копированием. Потому что в том же редакторе я работаю так же. И это логично, если в другом ПО взаимодействие с логической точки зрения будет аналогичным для такой же операции (выделить-копировать/удалить/вставить). В конце концов shift+insert у нас есть. Нужно только shift+стрелки+копирование выделенного в буфер

as_lan ★★
() автор топика