Как я могу записать все прокрутки в сеансе tmux в файл?
capture-panel
может захватить текущий экран, но не весь прокрутку.
Это зависит от значения, history-limit
которое вы установили в вашем .tmux.conf
- по умолчанию 2000; если вы хотите захватить больше, вам нужно будет явно указать количество строк.
Чтобы захватить весь прокрутку, войдите в режим копирования, выберите весь прокрутку и вставьте ее в буфер, затем вставьте в файл.
То, как вы это сделаете, будет зависеть от того, mode-keys
какой вариант вы предпочитаете: vi или emacs. man tmux
имеет полезную таблицу с описанием соответствующих ключей.
У меня есть следующее, .tmux.conf
чтобы упростить это:
unbind [
bind Escape copy-mode
unbind p
bind p paste-buffer
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
Процесс захвата полного прокрутки затем:
PrefixEsc : войти в режим копирования
v : начать визуальный отбор (при условии, что вы уже внизу экрана)
gg : захватить все в прокрутке
y : вытащить его в буфер
Prefixc : открыть другое окно tmux
vim scrollback.txt
i : войти в режим вставки в vim
Prefixp : вставить в файл
Здесь также есть ответ, описывающий, как скопировать буфер во временный файл, используяxsel
который может быть полезным.
:set paste
vim, vim будет игнорировать добавление автоматических отступов или любых сочетаний клавиш на основе вставки..tmux.conf
...Для тех, кто ищет простой ответ, просто используйте prefix+ :, затем введите
capture-pane -S -3000
+ return(замените тем3000
количеством строк, которое вы хотите сохранить.) Это скопирует эти строки в буфер.Затем, чтобы сохранить буфер в файл, просто используйте prefix+ еще :раз и введите
save-buffer filename.txt
+ return, заменив тем,filename
что вы хотите.(По умолчанию prefixэто ctrl + b.)
источник
save-buffer filename.txt
кажется, сохранить файл в/
, а не вpwd
(текущий каталог). Вместо этого яВ tmux 1.5
capture-pane
команда принимает-S
и-E
указывает начальную и конечную строки захвата; отрицательные значения могут быть использованы для указания строк из истории. Как только у вас есть данные в буфере, вы можете сохранить их с помощьюsave-buffer
.Вот пример привязки (подходит для
.tmux.conf
), которая оборачивает все это подсказкой для имени файла:Это захватывает (до) 32768 строк истории плюс отображаемые в данный момент строки. Начиная с tmux 1.6, вы можете использовать числа вплоть до INT_MIN, если ваша панель имеет историю, которая глубже 32Ки строк (обычно до 2Ги строк). Начиная с tmux 2.0, вы можете использовать
capture-pane -S -
для обозначения «начало в начале истории» (то есть без большого, жестко заданного отрицательного числа).Примечание. Число строк в сохраненном файле не всегда будет равно пределу истории панели плюс ее высота.
Когда буфер истории панели заполнен, tmux отбрасывает 10% самых старых строк вместо одной строки. Это означает, что эффективная глубина истории панели может составлять до 90% от настроенного предела.
источник
tmux server-info | head -1
чтобы увидеть свою версию.tmux -V
работает в tmux * 1.4 и позже.[PrefixKey] :
чтобы перейти к командной строке tmux, а затем вставьте всю строку, тогда вы просто сделаете a,[Prefix] P
это заглавная буква P, и вы готовы идти.У меня были стандартные привязки клавиш, которые выглядели немного иначе, чем в ответе @ jasonwryan, и я ничего не изменил в конфигурации.
Ниже рецепт, который работал для меня. Возможно, вы найдете это полезным, если вы не хотите вносить какие-либо изменения в конфигурацию tmux и просто хотите быстро скопировать часть прокрутки.
Prefix== Ctrl+bв моем tmux (tmux 1.6, debian 7).
источник
Если вам нужно что-то, что вы можете запустить из командной строки (вместо того, чтобы использовать префиксные ключи tmux), попробуйте выполнить:
Если вы запустите его и он, похоже, ничего не сделает, это потому, что он выводит именно то, что было на вашем экране, поэтому он выглядит так же.
Конечно, вы также можете передать его в файл:
См.
tmux
Справочную страницу и найдитеcapture-pane
другие вещи, которые вы можете сделать (например, захватить escape-последовательности на случай, если вы хотите сохранить цвет, или указать, хотите ли вы, чтобы несколько визуальных линий были соединены, если они не содержат новой строки)источник
Вот плагин tmux, который позволяет это:
https://github.com/tmux-plugins/tmux-logging
После установки сохраните весь прокрутку с помощью
prefix + alt-shift-p
.источник
Это на самом деле очень просто. Войдите в командный режим, нажав
prefix key
затем:
. Тогда сделайтеcapture-pane -S -<line number you want to dump>
Тогдаsave-buffer <filepath>
Этот файл содержит все выходные данные прокрутки. Вы должны удалить буфер впоследствии из соображений безопасности.
источник
Я использую это в моем ~ / .tmux.conf , и теперь, когда я выхожу из своей запущенной оболочки, выходные данные панели сохраняются в уникальный файл журнала:
источник