2009-05-15 4 views

Antwort

18

Mit der neuen fishshell (v2.3) können Sie set -U fish_prompt_pwd_dir_length 0 tun. Und es wird den vollständigen Pfad verwenden. Ich verwende auch dartfish für mein Thema. Siehe Beispiel unten:

enter image description here

+1

funktioniert nicht 'Fisch, Version 2.3.0' – Daniel

+0

Es funktioniert für mich. Ich habe v2.3 –

+0

Ich sollte hinzugefügt haben, dass ich Dartfish Thema verwende. Vielleicht ist es ein Teil des Themas? –

-2

Die prompt_pwd Funktion bestimmt die Funktion angezeigt werden sehen. Sie sollten in der Lage sein, Ihre eigene Version zu schreiben, um zu bekommen, was Sie wollen.

16

Hier ist meine Version von prompt_pwd, die angezeigt werden sollen, was Sie suchen:

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 

Dies wird die Tilde für das Home-Verzeichnis, wie üblich angezeigt, aber entfernt den sed Befehl, der den ersten Buchstaben zieht nur aus jedem Verzeichnis, wenn Sie ein paar Verzeichnisse tief sind.

Zum Bearbeiten prompt_pwdfunced verwenden. Es ermöglicht Ihnen, die Funktion interaktiv zu ändern. Geben Sie in der Befehlszeile funced prompt_pwd ein. Sobald die Eingabeaufforderung angezeigt wird, verwenden Sie funcsave prompt_pwd, damit das Verhalten in zukünftigen Sitzungen beibehalten wird.

+3

Sie nicht wirklich brauchen den 'if', im Home-Verzeichnis, das' sed' produziert noch '~' – jpillora

+0

Ihre Version erscheint auf meinem Rechner als '/ V/Y/U/s/D/p001' statt 'Volumes/Yosemite Ich bin/Benutzer/slippyd/Desktop/p001' (das Ergebnis von' echo $ PWD) '. –

+1

Geben Sie 'fish_config' in die Fischschale ein, es öffnet sich ein fish-config-Webinterface in Ihrem Browser. Jetzt können Sie aus einer langen Liste von Optionen für Ihre Eingabeaufforderung auswählen .. – Bhargav

5

Ich persönlich mag es nicht, die shared/defaults zu berühren. Fisch hat ein tolles Funktionsdesign, also nutzen Sie das.

erstellen ~/.config/fish/functions/prompt_long_pwd.fish mit dem Inhalt:

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

Dann einfach Ihre ~/.config/fish/functions/fish_prompt.fish bearbeiten prompt_long_pwd zu verwenden. Hier ist die benutzerdefinierte Eingabeaufforderung, die ich benutze:

~/.config/Fisch/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/Fisch/Funktionen/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

erhalten Sie nicht die down-Stimmen..ist diese Antwort inkorrekt? – rynop

+0

Die meisten Ihrer Antwort beziehen sich nicht auf die Beantwortung der Frage. Personen möchten, dass Sie die nicht verwandten Teile löschen. –

0

Die einfachste Möglichkeit zum Anpassen der Fischaufforderung ist die Verwendung von fish_config.