Відповіді:
Для отримання подібного ефекту bash
, зокрема ...
, спробуйте:
%(4~|.../%3~|%~)
Це перевіряє, якщо шлях має принаймні 4 елементи ( %(4~|true|false)
) і, якщо це правда, друкує деякі точки з останніми 3 елементами ( .../%3~
), інакше буде надруковано повний шлях %~
.
Я помітив, що, bash
здається, скорочуються шляхи до домашнього каталогу по-різному, наприклад:
~/.../some/long/path
Для подібного ефекту ви можете використовувати:
%(5~|%-1~/…/%3~|%4~)
Це перевіряє, чи довший шлях не більше 5 елементів, і в цьому випадку друкує перший елемент ( %-1~
), деякі точки ( /…/
) та останні 3 елементи. Це не зовсім те саме, що шляхи, яких немає у вашому домашньому каталозі, також матимуть перший елемент на початку, тоді як bash
просто виводить точки в цьому випадку. Так
/this/…/some/silly/path
замість
.../some/silly/path
Але це не обов'язково може бути поганим.
PROMPT
змінною оточення у вашому .zprofile
, наприклад:EXPORT PROMPT="%(5~|%-1~/…/%3~|%4~)"
.zshrc
і насправді немає необхідності в таких export
внутрішніх параметрах оболонки PROMPT
.
Окрім інших наведених тут відповідей, ви також можете використовувати %<
для обрізання шляху до заданої кількості символів . Мені здається, що це краще використовувати %<n>d
, оскільки окремі елементи шляху, очевидно, можуть бути досить довгими самі по собі. Використання %<
дає набагато більш передбачувану максимальну довжину підказки.
Наприклад, щоб урізати ліворуч елемент шляху з розширенням tilde ( %~
) до 15 символів, замінивши видалені символи на ..
, ви можете зробити щось подібне:
PROMPT='%n@%m:%15<..<%~%<<%# '
Це задокументовано у посібнику Zsh у розділі Підказка про розширення , що знаходиться в кінці сторінки.
Ви можете використовувати %3d
оперативне розширення :
/home/cuonglm/.config/fish/functions $ PS1='%3d $ '
.config/fish/functions $
Загальною формою є %d
, якщо будь-яке додатне ціле число d
вказує кінцеві компоненти для показу поточного шляху, нульове значення показує весь шлях, негативне ціле число означає провідний шлях для показу:
.config/fish/functions $ PS1='%-2d $ '
/home/cuonglm $
Див. Сторінку http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html абоman zshmisc
%d
%/
Current working directory. If an integer follows the ‘%’, it specifies a number of trailing components of the current working directory to show
%~
As %d and %/, but if the current working directory starts with $HOME, that part is replaced by a ‘~’.
Отже, щоб отримати щось подібне PROMPT_DIRTRIM=3
, ви можете використовувати %3d
або %3~
, наприклад,
% mkdir -p ~/a/b/c/d
% cd ~/a/b/c/d
% PS1='%n@%m: %3d%% '
user@computer: b/c/d%
~/a/b
як.../a/b
замість~/a/b
. Щоб виправити це, ви можете використовувати%(5~|…/%3~|%~)
.