У меня это в моем .screenrc
caption always "%{= Kw} [%0c] %-Lw%{= KW}[%50>%n%f* %t]%{= Kw}%+Lw%=| %l | ${FULLHOST}"
Обычно он отображает что-то вроде этого:
[01:06] 0$ vim 1$ top 2-$ tail [3$* ~] | 0.26 0.54 0.36 | machine.domain.com
Однако, когда у меня открыто много окон, данные справа отодвигаются от края и усекаются:
[01:07] 0$ vim 1$ top 2$ tail 3$ ~ 4$ ~ 5$ ~ 6-$ ~ [7$* ~] | 0.21 0.46 0.34 | mac
Как я могу изменить команду заголовка, чтобы она при необходимости обрезала список окон, а не выталкивала нужную информацию за край? Бонусные баллы, если активное окно тоже всегда отображается.
Другое решение, которое я сейчас использую. Вместо «% =», как в исходной строке, или «% -30 =» в метке изгиба (которая соответствует отметке -30% (также известной как 70%)), я использую «% -043 =» (которая выравнивает до знака -43 символа). Но, конечно, у него та же проблема, что и у Bender, где мне нужно компенсировать изменения для каждого сервера. Решение состоит в том, чтобы отредактировать файл .screenrc для каждого сервера с помощью такой команды:
sed -i "s/043/0$(( 19 + $#FULLHOST ))/" ~/.screenrc
(19 - это количество символов, используемых при отображении нагрузки и интервале)
Так как мой .screenrc генерируется файлом .rc моей оболочки, если его там нет, я могу сразу запустить эту команду после этого и получить правильное выравнивание смещения для каждого сервера. Не элегантно, но работает!
Остальные проблемы, которые мне не нужны, чтобы решить:
Я использую:
caption always "%-Lw%{= Yk}%50>%n%f*%t%{-}%+Lw%<%-12= %?%F%?%{b}%c %m/%d%?"
Это отображает что-то вроде:
0*bender@armitage 1 bender@rikki 2 bender@gibson 15:11 05/30
Это сохраняет время и дату в строке состояния и в активном окне в списке по мере увеличения размера списка окон. Магический бит, который вам не хватает, - это определенная ширина для той части, которую вы хотите оставить с правой стороны. Это директива ширины "% -12 =" в моей команде заголовка.
Попробуйте что-нибудь вроде:
caption always "%{= Kw} [%0c] %-Lw%{= KW}[%50>%n%f* %t]%{= Kw}%+Lw%-30=| %l | ${FULLHOST}"
Вам нужно будет поиграть с шириной (% -30 = выше), чтобы отобразить полное имя хоста.