Zsh подскажите с текущим рабочим каталогом
В bash мой PROMPT установлен так
PS1="$(scutil --get ComputerName) \W\\$ "
Где я вижу только имя компьютера и только имя текущего каталога, в котором я нахожусь, а не полный путь и знак $.
my-computer my-folder$
Мой вопрос заключается в том, как настроить приглашение zsh так же, как в bash. Я гуглил, но решения, которые я нашел, не совсем то, что я ищу.
4 ответа
Смотрите раздел РАСШИРЕНИЕ ПОСЛЕДОВАТЕЛЬНЫХ ПОСЛЕДОВАТЕЛЬНОСТЕЙ и ПРОСТЫХ ПОДСКАЗОК ESCAPES в zsh
страница руководства на man zshmisc
,
Эта строка подсказки, PS1='%m %1d$ '
, отображает имя машины (%m
) и завершающий компонент текущего пути (%1d
).
Лучшая версия комбинаций, которая работает для меня, такова:
PS1='%n@%m %~$ '
%n — пользователь, вошедший в систему
%m — имя машины
%~ дает путь относительно HOME, если путь начинается с HOME.
Вот как это для меня:
На странице руководства есть дополнительная информация. Здесь я попытался выразиться проще.! :D
По моему мнению
PS1='%~: '
где угодно в ~/.zshrc является самым чистым/простым.
PS1='%~ $: '
тоже неплохо.
Чтобы показать только каталог, за которым следует знак, например:
/usr/local%
Вставьте следующее~/.zshrc
(создайте файл, если он не существует):
PROMPT='%~%# '
%~
отображает текущий каталог, но ваш домашний каталог будет заменен~
:
/usr/local% cd
~% pwd
/Users/7stud
% cd erlang_programs
~/erlang_programs% pwd
/Users/7stud/erlang_programs
~/erlang_programs% cd /opt/local
/opt/local%
Это делает подсказку короткой и приятной.
Документы говорят, что%#
отобразит знак, но если вы используете привилегии, например, сsu
команда, то она отобразит#
знак. Когда я используюsudo
, он по-прежнему отображает%
знак.