Poisson interactif chemin Shell complet
Question
Est-il possible dans le shell interactif poisson pour le chemin complet à afficher. À l'heure actuelle lorsque je navigue dans un répertoire que je reçois le shell suivant.
millermj@Dodore ~/o/workspace
mais je préférerais voir
millermj@Dodore ~/o-town/workspace
La solution
Avec la nouvelle fishshell (v2.3) vous pouvez faire set -U fish_prompt_pwd_dir_length 0
. Et il utilisera le chemin complet. Je l'utilise aussi Dartfish pour mon thème. Voir exemple ci-dessous:
Autres conseils
Voici ma version de qui devrait afficher prompt_pwd
ce que vous cherchez:
function prompt_pwd --description 'Print the current working directory, NOT shortened to fit the prompt'
if test "$PWD" != "$HOME"
printf "%s" (echo $PWD|sed -e 's|/private||' -e "s|^$HOME|~|")
else
echo '~'
end
end
Ceci affichera le tilde pour le répertoire, comme d'habitude, mais supprime la commande qui tire sed
seule la première lettre de chaque répertoire lorsque vous êtes quelques répertoires profonds.
Pour modifier l'utilisation funced
funced prompt_pwd
. Il vous permettra de modifier de manière interactive la fonction. A partir de la ligne de commande de type funcsave prompt_pwd
. Une fois que l'invite affiche à votre goût, utiliser pour rendre le <=> comportement persistent dans les sessions futures.
Personnellement, je n'aime pas toucher les valeurs par défaut partagées /. Le poisson a une grande conception de fonctions, donc tirer parti de cela.
Créer le contenu ~/.config/fish/functions/prompt_long_pwd.fish
:
function prompt_long_pwd --description 'Print the current working directory'
echo $PWD | sed -e "s|^$HOME|~|" -e 's|^/private||'
end
Ensuite, il suffit de modifier votre utiliser ~/.config/fish/functions/fish_prompt.fish
prompt_long_pwd
. Voici le guide vocal personnalisé que j'utilise:
~ / .config / poissons / config.fish :
set -g __fish_git_prompt_show_informative_status 1
set -g __fish_git_prompt_hide_untrackedfiles 1
set -g __fish_git_prompt_color_branch magenta bold
set -g __fish_git_prompt_showupstream "informative"
set -g __fish_git_prompt_char_upstream_ahead "↑"
set -g __fish_git_prompt_char_upstream_behind "↓"
set -g __fish_git_prompt_char_upstream_prefix ""
set -g __fish_git_prompt_char_stagedstate "●"
set -g __fish_git_prompt_char_dirtystate "✚"
set -g __fish_git_prompt_char_untrackedfiles "…"
set -g __fish_git_prompt_char_conflictedstate "✖"
set -g __fish_git_prompt_char_cleanstate "✔"
set -g __fish_git_prompt_color_dirtystate blue
set -g __fish_git_prompt_color_stagedstate yellow
set -g __fish_git_prompt_color_invalidstate red
set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal
set -g __fish_git_prompt_color_cleanstate green bold
~ / .config / poissons / fonctions / fish_prompt.fish
function fish_prompt --description 'Write out the prompt'
set -l last_status $status
if not set -q __fish_prompt_normal
set -g __fish_prompt_normal (set_color normal)
end
# PWD
set_color $fish_color_cwd
echo -n (prompt_long_pwd)
set_color normal
printf '%s ' (__fish_git_prompt)
if not test $last_status -eq 0
set_color $fish_color_error
end
echo -n '$ '
end
La fonction prompt_pwd
détermine la fonction à afficher. Vous devriez être en mesure d'écrire votre propre version pour obtenir ce que vous voulez.