web-dev-qa-db-fra.com

ZSH Agnoster Theme affichant le nom de la machine

J'ai un serveur de développement hébergé sur Digital Ocean, utilisant Ubuntu 14.04. J'ai changé mon Shell pour ZSH et j'ai décidé de choisir le thème Agnoster . Pour que user@hostname cesse de s'afficher, j'ai défini le DEFAULT_USER dans mon fichier .zshrc.

Pour une raison quelconque sur le serveur Ubuntu, cela ne fonctionne pas. Le nom d'hôte est toujours affiché et ne disparaîtra pas. Je fais exactement la même chose sur mon Mac OSX, et tout fonctionne bien.

Voici quelques captures d'écran:

enter image description here

enter image description here

Quelqu'un sait ce qui se passe? J'ai même essayé DEFAULT_USER="$USER@$Host" sans succès.

Si je reviens au paramètre par défaut, Robby Russell theme, cela fonctionne très bien.

enter image description here

29
Drew

C'est la caractéristique selon ceci ; lorsque nous sommes sshing, le nom d’hôte sera affiché.

Le remplacement de la fonction Prompt_context ou build_Prompt sur le thème Agnoster sera sauvé. Mettre des extraits ci-dessous à la toute fin du ~/.zshrc par exemple.

# redefine Prompt_context for hiding user@hostname
Prompt_context () { }
60
hchbaw

Voici ma version des deux premières réponses. Ils expliquent très clairement. Je vais fusionner à nouveau.

  1. étape 1. ouvrez votre fichier .zshrc par vim .zshrc

  2. étape 2. allez à la fin de votre fichier.

  3. Collez ce code:

attention à nouveau votre code

Prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    Prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

Lien de référence: code du thème agnoster

J'espère que cette aide :)

37
hqt

J'utilise aussi le thème Agnoster.

Éditez agnoster.zsh-theme et trouvez $user@%m et supprimez @%m.

Exemple d'image: 

enter image description here

19

Vous pouvez définir DEFAULT_USER="[user name]" dans votre fichier .zshrc et il ne montrera plus le user@hostname dans votre terminal.

Pour obtenir le [user name], saisissez id -un dans votre terminal et la valeur [user name] sera générée.

10
Munshi Wahid

Si vous êtes sur macOS, il suffit d'ajouter une seule ligne à votre fichier ~/.zshrc pour masquer le nom de l'ordinateur dans le terminal:

# Where we specify the theme
ZSH_THEME="agnoster"
# Force yourself as the system's default user
DEFAULT_USER="$(whoami)"

Cela annulera la vérification "$user" != "$DEFAULT_USER"here , masquant ainsi le nom de la machine localement tout en affichant les connexions SSH.

2
IAmKale

1 . Ouvrir ~/.zshrc Ajouter la ligne: DEFAULT_USER = whoami ou exporter DEFAULT_USER = myusername (mac os x)

2 . Ouvrir les fichiers ~/.oh-my-zsh/themes/agnoster.zsh-theme.

find ## Main Prompt add # pour la ligne Prompt_context.

1
David Pan

En rapport avec le contexte: Parfois, le sourçage de zshrc par "source ~/.zshrc" peut ne pas fonctionner. Démarrez un nouveau terminal pour voir les modifications mises à jour. 

1
Vigneshwar

Mettez ceci dans votre fichier .zshrc avant le 'source $ ZSH/oh-my-zsh.sh'

DEFAULT_USER=drewr

J'utilise aussi Agnoster, et c'est ce que je mets pour empêcher le nom d'utilisateur de s'afficher.

J'espère que cela t'aides.

0
William Leiby

Nous n'avons pas besoin de modifier agnoster.zsh-theme mais d'ajouter le code ci-dessous à la fin de .zshrc:

export USER=''
Prompt_context() {
  if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
    Prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
  fi
}

nous pouvons changer export USER='' comme export USER='john' pour montrer ce que nous voulons.

0
Joe Zhow