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


Я использую tmux (с zsh, если это помогает). У меня неплохая настройка, но часто я запускаю программу с большим количеством выходных данных, а затем вхожу в режим копирования и обратный поиск строки, которую я ввел в оболочку, чтобы перейти к началу вывода. Я делаю это, предпочитая использовать меньше из-за цветового вывода, и тот факт, что иногда я хочу скопировать некоторый текст.

Если я выполняю команду, которую я уже знаю, будет выдавать много результатов, я бы хотел запустить ее и закончить в режиме копирования в начале вывода без необходимости вводить команду дважды. Это может быть как способ запуска команды, так и переход в режим копирования до выхода, поэтому экран не прокручивается, или способ войти в режим копирования и немедленно отменить поиск последнего элемента истории оболочки. Из документов tmux я могу видеть, как связывать ключи в режиме копирования, но нет доступных документов о доступных функциях (т. Е. Можно привязать ключ к поисковому обращению «foo»).


1
2018-03-18 16:07


Источник


less -R сохраняет окраску, но обычно команда, производящая выход, должна быть вынуждена окрашивать свой выход при подключении к трубе, например. ls --color=yes | less -R - mpy
Не знал о знаке -R, который немного помогает. Я могу по крайней мере исправить свой самый распространенный случай использования, который является выходом hg diff, включив расширение пейджера hg и используя less -FRX в качестве команды пейджера. Благодаря! Тем не менее все-таки интересно узнать об общем решении для tmux. - Benedict Singer


Ответы:


обычно, не всегда, вы можете выгружать вывод в файл. Например, когда мое автоматическое резервное копирование выполняется, он выгружает вывод в текстовый файл для архивирования. Я делаю это, используя tee, Команда образца:

ls | tee dumpfile

Я вижу вывод на экране, а также все введет в dumpfile для последующего чтения. Это может работать или не работать для вас, в зависимости от того, какую программу вы используете.


0
2018-03-18 17:00



Правильно, но есть две проблемы: во-первых, он ничего не делает о прокрутке вывода, а второй - о том, что, как и меньше, он теряет расцветку на выходе. - Benedict Singer
Забыл о потере цвета, мой плохой. Что касается прокрутки, я не был уверен, что вы в конечном итоге делаете, поэтому я подумал, что файл мог бы помочь. Я оставлю этот ответ как не совсем подходящее решение для других с несколько похожим вопросом (если вы не захотите его удалить) - Russell Uhl
В принципе, я набираю «cat <mylargefile>» и заканчиваю пару экранов вывода и новое приглашение оболочки. Затем я вхожу в режим копирования, обратный поиск «cat <mylargefile>» и затем может читать с самого начала. Вместо этого я хочу либо: a) сделать <magic>, набрать 'cat <mylargefile>' и не вывести вывод, пока он не захочет, или b) введите 'cat <mylargefile>', нажмите на свой собственный keybind и завершите в режиме копирования с уже выполненным обратным поиском. - Benedict Singer
@BenedictSinger делает это в less делать то, что вам нужно? cat file | less, Это не интерактивно, но вы можете прокручивать выходные на досуге, если вы визуально ищете что-то - Russell Uhl