Как вывести список свойств с помощью `systemctl `?

Хотя верно, что вы всегда должны устанавливать переменную окружения TERMв соответствии с типом вашего терминала, а не беспечно и ошибочно предполагать, что тип вашего терминала — xterm-*, на самом деле это не имеет ничего общего с проблемой, поскольку переменная окружения TERMне имеет отношения к литеральным управляющим последовательностям, встроенным в ваше приглашение.

Проблема заключается в том, что вы используете под-параметры в своей управляющей последовательности, а не параметры. Параметры разделяются точкой с запятой -двоеточием ;, как указано в ECMA -48 :1991 § 5.4.2. Параметры Sub -разделяются двоеточием :, как указано в ITU -T T.416 :1993 § 13.1.8.

Ваш внешний эмулятор терминала, по-видимому, является одним из тех, которые обрабатывают подпараметры -с боджем, который рассматривает их как параметры. Таким образом,CSI0:33mобрабатывается как SGR 0 и SGR 33. Другие эмуляторы терминала более строго относятся к правильной обработке управляющих последовательностей или еще не реализуют поддержку параметра sub -. Они могут по-разному рассматривать его как SGR 0 с дополнительным параметром -равным 33, простым SGR 0 (, принимающим первое число ),или только SGR 33 (с последним номером ).

Эмуляторы терминала вообще не поддерживали параметры sub -несколько лет назад, так что это то, что меняется; и следует надеяться, что со временем все они будут должным образом поддерживать параметры sub -. В этом случае ваша подсказка будет просто повсеместно неправильной. & #9786;

Лично я предпочитаю оболочку Z, где можно использовать последовательности, подобные %F{yellow}, в подсказке, не беспокоясь о том, что представляют собой управляющие последовательности, правильно их интерпретировать и помечать как интервалы -.

0
28.12.2020, 19:54
1 ответ

Вы можете увидеть список свойств с systemctl show, например

systemctl show user-1000.slice
3
18.03.2021, 22:40

Теги

Похожие вопросы