2009-05-15 7 views

Répondre

18

Avec la nouvelle fishshell (v2.3) vous pouvez faire set -U fish_prompt_pwd_dir_length 0. Et il utilisera le chemin complet. J'utilise aussi dartfish pour mon thème. Voir exemple ci-dessous:

enter image description here

+1

ne fonctionne pas 'poisson, version 2.3.0' – Daniel

+0

Cela fonctionne pour moi. J'ai v2.3 –

+0

J'aurais dû ajouter que j'utilise le thème dartfish. Peut-être que cela fait partie du thème? –

-2

La fonction prompt_pwd détermine la fonction à afficher. Vous devriez être capable d'écrire votre propre version pour obtenir ce que vous voulez.

16

Voilà ma version de prompt_pwd qui devrait afficher 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 sed qui tire la première lettre de chaque répertoire lorsque vous êtes quelques répertoires profonds. Pour modifier prompt_pwd, utilisez funced. Cela vous permettra de modifier interactivement la fonction. À partir de la ligne de commande, tapez funced prompt_pwd. Une fois l'invite affichée à votre convenance, utilisez funcsave prompt_pwd pour que le comportement persiste dans les sessions futures.

+3

Vous n'avez pas besoin en fait la 'if', dans le répertoire de la maison, la' sed' produira encore '~' – jpillora

+0

Votre version apparaît sur ma machine '/ V/Y/U/s/D/p001' au lieu de 'Volumes/Yosemite je suis/Users/slippyd/Desktop/p001' (le résultat de' echo $ PWD) '. –

+1

Tapez 'fish_config' dans le shell poisson, cela ouvrira une interface web fish-config dans votre navigateur. Maintenant, vous pouvez choisir parmi une longue liste d'options pour votre invite .. – Bhargav

5

Personnellement, je n'aime pas toucher les valeurs partagées/par défaut. Le poisson a une bonne conception des fonctions, alors profitez-en.

Créer ~/.config/fish/functions/prompt_long_pwd.fish avec le contenu:

function prompt_long_pwd --description 'Print the current working directory' 
     echo $PWD | sed -e "s|^$HOME|~|" -e 's|^/private||' 
end 

Ensuite, il suffit d'éditer votre ~/.config/fish/functions/fish_prompt.fish utiliser 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 
+0

ne pas obtenir les bas-votes .. cette réponse est incorrecte? – rynop

+0

La plupart de vos réponses ne sont pas liées à la réponse à la question. Les gens veulent que vous supprimiez les parties non liées. –

0

La méthode la plus simple pour personnaliser l'invite de poisson consiste à utiliser fish_config.

Questions connexes