Відповіді:
Для пошуку в tmux
буфері історії для поточного вікна натисніть Ctrl- b [для входу copy mode
.
Якщо ви використовуєте прив'язки клавіш emacs (за замовчуванням), натисніть Ctrl- sа потім введіть рядок для пошуку та натисніть Enter. Натисніть, nщоб знову знайти той самий рядок. Натисніть Shift- nдля зворотного пошуку. Натисніть Escapeдвічі для виходу copy mode
. Ви можете використовувати Ctrl- rдля пошуку у зворотному напрямку. Зауважте, що оскільки tmux
керує клавіатурою в copy mode
, Ctrl- sпрацює незалежно від stty ixon
налаштування (яке я хотів би мати, stty -ixon
щоб включити пошук вперед в Bash).
Якщо ви використовуєте прив'язки клавіш vi ( Ctrl- b:set-window-option -g mode-keys vi
), натисніть, /а потім введіть рядок для пошуку та натисніть Enter. Натисніть, nщоб знову знайти той самий рядок. Натисніть Shift- nдля зворотного пошуку, як у режимі emacs. Натисніть qдвічі для виходу copy mode
. Ви можете використовувати ?для пошуку у зворотному напрямку.
Якщо ви хочете перейти до вікна на основі чогось відображеного в ньому (сюди також входять назви вікон та заголовки, але не історія), (починаючи з відкритого більш ніж одного вікна) натисніть Ctrl- b fпотім введіть рядок для пошуку та натисніть Enter. Ви перейдете у вікно, яке містить цей текст, якщо він знайдений. Якщо збігається більше одного вікна, ви побачите список, з якого можна вибрати.
EDITOR
або VISUAL
) для потрібного стилю tmux
.
set-window-option -g mode-keys vi
по моєму .tmux.conf
. Але мені було цікаво альтернативу змінної середовища, і я не зміг змусити її працювати. Це змінна середовище оболонки або змінна середовища tmux, яку потрібно встановити у файлі conf?
VISUAL=vi tmux
Увійдіть в режим копіювання і почніть пошук за один раз
bind-key / copy-mode \; send-key ?
дозволяє робити лише:
Ctrl + B /
і почніть вводити пошуковий термін.
Завантажте файл та використовуйте vim
Коли все більше залучається, я просто хочу скористатися належним редактором: https://unix.stackexchange.com/questions/26548/write-all-tmux-scrollback-to-a-file
bind-key P 'capture-pane' \; capture-pane -S - \; save-buffer /tmp/tmux \; delete-buffer
Тепер P
скидає буфер у файл, а потім я просто:
vim /tmp/tmux
Випробувано в tmux 2.6.
/tmp/tmux
)?
Ви можете використовувати vim для перегляду / редагування / пошуку / збереження журналу екрана, складання журналу в кожному запиті bash:
tmux capture-pane -pS -1000000 |
vim +":setl fen fdm=expr fde=getline(v:lnum)=~'^\\\\S\\+\\\\$\\\\s'?'>1':1" -
Відрегулюйте регулярний вираз відповідно до вашого підказка, використовуйте чотири зворотні косої риски для кожного зворотного косого кута.
Або поставте функцію vim у ~ / .vimrc:
command! MoshFoldTmuxLog :setl fen fdm=expr
\ fde=getline(v:lnum)=~'^\\S\\+\\$\\s'?'>1':1
І в ~ / .bashrc додайте дату до підказки, якщо у вас є багато журналів, для яких слід шукати. напр
PS1='\u@\h:\w:\D{%F-%T}$?:\$ ' # user-host-pwd-date-time-errno
alias tmux-log='tmux capture-pane -pS -1000000 | vi +MoshFoldTmuxLog -'
Ось таке рішення я знайшов.
Ви також можете змінити цільовий шлях та ім'я файлу:
# Save screen content to file
bind p command-prompt -p 'Save history to:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'
Після завантаження конфігураційного файлу tmux ви можете натиснути prefix p
в моєму випадку Ctrl+a p
Ви можете змінити bind p
бажану комбінацію клавіш.
Спочатку моя не працювала, тому що я перезаписався bind p
в інший рядок, тому я просто прокоментував це.
tmux
(tmux -V
)? Я вважаю, що це було додано у версії 0.9.