У меня есть несколько экземпляров, которые являются частью облачной среды. К их имени добавляется UUID, например:
<name-of-host>-411a7a0e-b409-46a0-bf8f-546ffc50ee2b
Я не хочу скрывать это, так как это помогает мне узнать, на какой машине я нахожусь, поэтому я хотел бы видеть только первые 20 символов.
Моя подсказка по умолчанию выглядит так:
PROMPT="[%n@%m %1~]%(#.#.$) "
Итак, моя первая попытка была:
PROMPT="[%n@%20>...>%m %1~]%(#.#.$) "
Тем не менее, это не работает, как показано ниже:
user@name-of-host...<command prompt is right here>
Тогда я попробовал так:
PROMPT="[%n@%{%20>...>%m%} %1~]%(#.#.$) "
Он отображает подсказку правильно, но когда я пытаюсь что-то вроде bck-i-search (CTRL-R), часть внутри %{...%}
перезаписывается.
Документы ZSH объясняют, почему:
%{...%} Include a string as a literal escape sequence. The string within the braces should not change the cur- sor position. Brace pairs can nest.
Есть ли другой способ добиться того, чего я хочу?