Вопрос или проблема
Время от времени я замечал, как в правой части панели состояния исчезают несколько символов. Например, предполагаемое
11:40
должно быть
11:4
Мой .tmux.conf
выглядит следующим образом:
# Установить панель состояния
set -g status-bg black
set -g status-fg white
set -g status-left '#[fg=green]#S'
set -g status-right '#[fg=yellow]#(uptime | egrep -o "[0-9]+ users?, +load.*"|perl -pe "s| averages?||"), %H:%M'
set -g status-left-length 20
set -g status-right-length 40
Есть идеи? Спасибо.
Проблема в том, что длина вывода команды в вашей правой панели состояния:
uptime | egrep -o "[0-9]+ users?, +load.*"|perl -pe "s| averages?||"
вместе с длиной , %H:%M
может превышать status-right-length
(например, когда нагрузка на систему увеличивается, смотрите man uptime
), что приводит к обрезке любых лишних символов.
Например, после того как я позволил системе работать с stress
некоторое время:
% uptime | egrep -o "[0-9]+ users?, +load.*"|perl -pe "s| averages?||"
1 user, load: 0,04, 0,07, 0,07
% uptime | egrep -o "[0-9]+ users?, +load.*"|perl -pe "s| averages?||" | wc -c
32
# после запуска `stress` некоторое время:
% uptime | egrep -o "[0-9]+ users?, +load.*"|perl -pe "s| averages?||"
1 user, load: 26,40, 45,04, 37,74
% uptime | egrep -o "[0-9]+ users?, +load.*"|perl -pe "s| averages?||" | wc -c
35
Вывод команды на 3 символа длиннее, чем вывод команды, когда система простаивает (все 3 средние нагрузки стали двузначными).
35 символов минус символ новой строки (34 символа) + длина , %H:%M
(7 символов) = 41 символ. Это, при установке status-right-length
на 40, приведет к тому, что итоговый 11:40
будет обрезан до 11:4
.
Как упоминалось в комментариях, решение заключается в том, чтобы увеличить status-right-length
соответствующим образом; если эмпирически вы установили, что вечно обрезается всего лишь один символ, вы можете увеличить status-right-length
всего на 1:
set -g status-right-length 41
Просто добавьте это в ваш tmux.conf
:
set-option -g status-right " #[fg=brightwhite,bg=#363636] %a, %d %b %H:%M #[fg=brightwhite,bg=brightblack] #(whoami)@#h "
Ответ или решение
Ваша проблема с исчезновением правых символов в строке состояния tmux действительно вызвана тем, что длина вывода команды, используемой в правой части строки состояния, превышает значение, установленное в параметре status-right-length
. Давайте разберем данную ситуацию более подробно и предложим пути решения.
Причина проблемы
Вы используете следующую команду для вывода информации в правой части строки состояния:
uptime | egrep -o "[0-9]+ users?, +load.*"|perl -pe "s| averages?||"
Этот вывод, вместе с текстом , %H:%M
(где %H:%M
– это текущее время), может иногда превышать заданную длину status-right-length
, которая в вашем случае равна 40 символам.
При проверке длины строки вывода команды вы заметите, что в зависимости от нагрузки на систему длина вывода может изменяться. Например, если система загружена, вывод может быть следующим:
1 user, load: 26,40, 45,04, 37,74
Это составит 35 символов (включая пробелы), после чего еще добавляется 7 символов для , %H:%M
, в итоге получая 42 символа. Поскольку status-right-length
установлен на 40, происходит обрезка, и вы видите, что правые символы в строке состояния исчезают.
Решение проблемы
Наиболее простым решением будет увеличение длины status-right-length
. Если вы установите значение на 41, то в большинстве случаев это должно решить вашу проблему. Добавьте следующую строку в ваш файл конфигурации .tmux.conf
:
set -g status-right-length 41
Если вы хотите более поразно смотреть на информацию в строке состояния, вы можете полностью изменить код, который вы используете в status-right
, чтобы включить другой формат или информацию, но увеличение длины, скорее всего, решит вашу проблему на текущий момент.
Альтернативный подход
Если вы хотите более детализированное отображение информации, можно изменить вашу строку состояния следующим образом (как было предложено во втором ответе):
set-option -g status-right " #[fg=brightwhite,bg=#363636] %a, %d %b %H:%M #[fg=brightwhite,bg=brightblack] #(whoami)@#h "
Этот формат позволяет включить информацию о дне недели, дате и времени, а также имя пользователя и хост. Корректируя оформление, вы также можете уменьшить возможность обрезки, убирая ненужные символы или сокращая текст.
Заключение
Надеюсь, данная информация была для вас полезной. Важно помнить, что настройка tmux может сильно варьироваться в зависимости от ваших нужд и сценариев использования. Всегда тестируйте изменения на тестовом сеансе прежде, чем применять их в рабочей среде. Если у вас есть дополнительные вопросы, не стесняйтесь обращаться за помощью.