В zsh
расширение подсказки %
предназначено для этого. Когда число отрицательное, например -30
, если до правого края экрана осталось не менее 30 символов, то выводится текст yes
, иначе no
, поэтому:
PS1=$'%~%-30(l::\n)$ '
Будет вставлена новая строка, если для использования в строке осталось менее 28 символов. (30 минус "$ "
).
Вы можете выполнить 50 и более с помощью:
PS1=$'%~%50(l:\n:)$ '
Но ИМО, полезнее гарантировать минимальное доступное пространство, чем максимальное неиспользуемое пространство.
Подробнее см. в руководстве . Вы найдете другие директивы для усечения длинных подсказок и замены многоточием, например, которые вы также можете найти полезными.
Обратите внимание, что расширение подсказки zsh полностью отличается от bash
. На самом деле он ближе к tcsh
, так что решения для bash
вряд ли будут полезны для zsh
, хотя, как правило, более верно обратное.