2009-05-15 14 views

Respuesta

18

Con el nuevo fishshell (v2.3) puede hacer set -U fish_prompt_pwd_dir_length 0. Y usará la ruta completa. También uso dartfish para mi tema. Consulte el siguiente ejemplo:

enter image description here

+1

no funciona 'fish, versión 2.3.0' – Daniel

+0

Funciona para mí. Tengo v2.3 –

+0

Debería haber agregado que uso el tema de dartfish. Tal vez es parte del tema? –

-2

La función prompt_pwd determina la función que desea visualizar. Debería poder escribir su propia versión para obtener lo que desea.

16

aquí está mi versión de prompt_pwd que debe mostrar lo que está buscando:

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 

Esto mostrará la tilde para el directorio principal, como de costumbre, pero elimina el comando sed que sólo lo hace con la primera letra de cada directorio cuando tienes unos pocos directorios de profundidad.

Para editar prompt_pwd utilice funced. Te permitirá interactivamente alterar la función. Desde la línea de comandos, escriba funced prompt_pwd. Una vez que el aviso se muestre a su gusto, use funcsave prompt_pwd para que el comportamiento persista en futuras sesiones.

+3

En realidad no necesita el 'if', en el directorio home, el' sed' todavía producirá '~' – jpillora

+0

Su versión aparece en mi máquina como '/ V/Y/U/s/D/p001' en lugar de 'Volumes/Yosemite I am/Users/slippyd/Desktop/p001' (el resultado de' echo $ PWD) '. –

+1

Escriba 'fish_config' en la concha de pescado, se abrirá una interfaz web fish-config en su navegador. Ahora puede seleccionar de una larga lista de opciones para su solicitud. – Bhargav

5

Personalmente, no me gusta tocar los compartidos/predeterminados. Fish tiene un excelente diseño de funciones, así que aproveche eso.

Crear ~/.config/fish/functions/prompt_long_pwd.fish con el contenido:

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

simplemente edite su ~/.config/fish/functions/fish_prompt.fish utilizar prompt_long_pwd. Aquí está el mensaje personalizado que utilizo:

~/.config/pescado/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/pescado/funciones/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

no recibe los votos ... ¿es incorrecta esta respuesta? – rynop

+0

La mayor parte de su respuesta no está relacionada con la respuesta a la pregunta. La gente quiere que borres las partes no relacionadas. –

0

La manera más fácil de personalizar el indicador de pez es usar fish_config.

Cuestiones relacionadas