ZSH Agnoster Тема, показывающая название машины
У меня есть сервер разработки, размещенный в Digital Ocean, используя Ubuntu 14.04. Я переключил свою оболочку на ZSH и решил пойти с темой Agnoster. Чтобы перестать показывать [email protected]
, я устанавливаю DEFAULT_USER
в мой .zshrc файл.
По какой-то причине на сервере ubuntu это не работает. Имя хоста все еще отображается и не исчезнет. Я делаю то же самое на своем Mac OSX, и он отлично работает.
Вот несколько скриншотов:
![enter image description here]()
![enter image description here]()
Кто-нибудь знает, что происходит? Я даже не пробовал DEFAULT_USER="[email protected]$HOST"
.
Если я вернусь к теме по умолчанию, Robby Russell, она работает нормально.
![enter image description here]()
Ответы
Ответ 1
Это функция в соответствии с этим; когда мы ssh
ing, будет показано имя хоста.
Отмена функции prompt_context
или build_prompt
в теме Agnoster спасет. Поместите ниже фрагменты в самом конце ~/.zshrc
, например.
# redefine prompt_context for hiding [email protected]
prompt_context () { }
Ответ 2
Вот моя версия из первых двух ответов. Они объясняют очень четко. Я снова сольюсь.
осторожно отмените свой код
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
Ссылка ссылки: код темы agnoster
Надеюсь, что эта помощь:)
Ответ 3
Я тоже использую тему agnoster.
Измените agnoster.zsh-theme
и найдите [email protected]%m
и удалите @%m
.
Образец изображения:
![enter image description here]()
Ответ 4
Вы можете установить DEFAULT_USER="[user name]"
в свой .zshrc
файл, и он перестанет показывать [email protected]
в вашем терминале.
Чтобы получить [user name]
, введите id -un
в свой терминал и выведет значение [user name]
.
Ответ 5
Если вы используете macOS, достаточно добавить одну строку в ваш файл ~/.zshrc
, чтобы скрыть имя машины в Терминале:
# Where we specify the theme
ZSH_THEME="agnoster"
# Force yourself as the system default user
DEFAULT_USER="$(whoami)"
Это отменяет проверку "$user" != "$DEFAULT_USER"
здесь, тем самым скрывая имя машины локально, в то же время отображая его для подключений SSH.
Ответ 6
Мой конфиг в ~/.oh-my-zsh/themes/agnoster.zsh-theme
prompt_context() {
# Custom (Random emoji)
emojis=("⚡️" "🔥" "💀" "👑" "😎" "🐸" "🐵" "🦄" "🌈" "🍻" "🚀" "💡" "🎉" "🔑" "🇹🇭" "🚦" "🌙")
RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1))
prompt_segment black default "${emojis[$RAND_EMOJI_N]} "
}
Ответ 7
1.
открыть ~/.zshrc
добавить строку:
DEFAULT_USER = whoami
или экспортировать DEFAULT_USER = myusername (mac os x)
2.
открыть файлы ~/.oh-my-zsh/themes/agnoster.zsh-theme.
find ## Основная подсказка
добавьте # для строки prompt_context.
Ответ 8
Связано с контекстом:
Иногда получение zshrc из "source ~/.zshrc" может не работать. Запустите новый терминал, чтобы увидеть обновленные изменения.
Ответ 9
Поместите это в свой файл .zshrc перед 'source $ ZSH/oh-my-zsh.sh'
DEFAULT_USER=drewr
Я также использую Agnoster, и это то, что я хочу, чтобы убрать имя пользователя из списка.
Надеюсь это поможет.
Ответ 10
Нам не нужно редактировать agnoster.zsh-theme
, а добавить код ниже в конце .zshrc
:
export USER=''
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
fi
}
мы можем изменить export USER=''
на export USER='john'
, чтобы показать, что мы хотим.
Ответ 11
Хотя принятый ответ вполне подходит, я предпочитаю как можно меньше модифицировать файл .zshrc
, чтобы сохранить его в чистоте.
Таким образом, немного другой подход заключается в переопределении темы (как рекомендовано на https://github.com/robbyrussell/oh-my-zsh/wiki/Customization#overriding-and-adding-themes).
- Перейдите в папку
~/.oh-my-zsh/custom/themes
- Создайте файл с именем
agnoster.zsh-theme
- Добавьте свою настройку и сохраните (например, здесь, переопределите
prompt_context()
, чтобы он ничего не делал):
prompt_context() {}
- Обновите свой терминал, внеся изменения:
source ~/.zshrc