Ответ 1
Вы можете очистить текущий буфер, используя send-keys -R
, но имейте в виду, что приложение, запущенное внутри этого буфера, не заметит, что содержимое буфера было протерто.
Я использую tmux с iTerm2.
Очистить экран, используя Ctrl-L, работает, когда я в bash, но не работает, когда я заканчиваю журналы сервера. Как это исправить?
Вы можете очистить текущий буфер, используя send-keys -R
, но имейте в виду, что приложение, запущенное внутри этого буфера, не заметит, что содержимое буфера было протерто.
Ctrl-L привязан к команде readline
. Однако, пока вы используете команду, которая обрабатывает ваш журнал, bash
не получает ввод с клавиатуры. Вы можете приостановить хвост с помощью Ctrl-Z, очистить экран с помощью Ctrl-L и возобновить хвост с помощью fg
.
Это не зависит от tmux
; Я не думаю, что tmux
имеет что-то вроде команды clear-pane
, вместо этого полагаясь на оболочку для обработки этого для вас.
В OSX (терминал и я верю iTerm2) CMD + K очищает и удаляет прокрутку, но я не уверен, что это работает при хвосте или в tmux.
Несколько ссылок могут иметь ваш ответ:
Кроме того, @chepner предложил приостановить команду, и это дало мне идею добавить его как ключевое связывание (примечание: я протестировал это на Linux, но у меня нет OSX. Первая ссылка, похоже, указывает clear-history
может работать):
bind-key -n C-l send-keys C-z \; send-keys " reset && fg > /dev/null" \; send-keys "Enter"
Добавьте это в свой ~/.tmux.conf
, затем вы можете сделать CTRL+l
, и он отправит необходимые ключи и команды на терминал для его автоматизации.
reset && fg
имеет префикс пробела, чтобы исключить его из истории.
> /dev/null
останавливает отображение исходной команды хвоста, но это может быть полезно, поэтому ее можно удалить, если вы хотите увидеть ее после очистки.