Gnu screen: обойти ограничение в 100 символов для команд — невозможно изменить hardstatus

Gnu screen: обойти ограничение в 100 символов для команд — невозможно изменить hardstatus

У меня в файле .screenrc установлена ​​строка hardstatus:

hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'
# This is 127 characters

Я регулярно вхожу на удаленные серверы, которые используются совместно с другими пользователями, имеющими свою любимую строку hardstatus. Я хочу изменить hardstatus для сеанса screen, введя его как команду после начала сеанса. К сожалению, screen перестает принимать ввод для команды после достижения примерно 100 символов.

Когда я говорю об экранных командах, я имею в виду те, которые вводятся после нажатия ctrl+a :

Есть ли способ увеличить лимит символов команды screen более 100 символов или другой способ установить hardstatus без изменения файла .screenrc? Решение для его изменения после начала сеанса было бы предпочтительным, но опция командной строки при запуске screen была бы хорошей альтернативой, если это возможно.

Одним из способов решения этой проблемы является сохранение строки hardstatus в файле и ввод ctrl+ a :source <file>или ввод следующего кода после запуска экрана:

screen -p <SESSION_NAME or PID> -X hardstatus alwayslastline '%{= kg}[ %{G}%H %{g}][%= %{= kB}%?%-Lw%?%{+b r}(%{G}%n*%f %t%?(%u)%?%{r})%{-b B}%?%+Lw%?%?%= %{g}%]'

Но мне бы очень хотелось узнать, как увеличить лимит символов для команд.

Заранее спасибо,

Мэтью

решение1

Это невозможно; ограничение в 100 символов жестко запрограммировано (я думаю, что верхний предел применяется вэкран/источник/вход.c, но вызывающие функции могут изначально предоставлять более короткий буфер, так что это потенциально не единственное место, которое может потребовать исправления).

В качестве решения, требующего меньшего набора текста, я рекомендую добавить , .screenrc-DarthAndroidкоторый сначала вызывает source .screenrc, а затем добавляет ваши предпочтительные настройки переопределения; затем создать псевдоним оболочки myscr="screen -c ~/.screenrc-DarthAndroid ".

Связанный контент