Fish Interactive Shell полный путь - PullRequest
25 голосов
/ 15 мая 2009

Есть ли способ в оболочке Fish Interactive для отображения полного пути. В настоящее время при переходе в каталог я получаю следующую оболочку.

millermj@Dodore ~/o/workspace

но я бы лучше увидел

millermj@Dodore ~/o-town/workspace

Ответы [ 4 ]

34 голосов
/ 20 мая 2016

С новым fishshell (v2.3) вы можете сделать set -U fish_prompt_pwd_dir_length 0. И он будет использовать полный путь. Я также использую dartfish для моей темы. Смотрите пример ниже:

enter image description here

16 голосов
/ 05 апреля 2010

Вот моя версия prompt_pwd, которая должна отображать то, что вы ищете:

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

Это покажет тильду для домашнего каталога, как обычно, но удалит команду sed, которая вытягивает первую букву из каждого каталога, когда вы находитесь на глубине нескольких каталогов.

Для редактирования prompt_pwd используйте funced. Это позволит вам интерактивно изменить функцию. Из командной строки введите funced prompt_pwd. Как только приглашение отобразится по вашему вкусу, используйте funcsave prompt_pwd, чтобы сохранить поведение в будущих сеансах.

6 голосов
/ 31 октября 2014

Мне лично не нравится трогать общие / значения по умолчанию. Рыба имеет отличный дизайн функций, так что используйте это.

Создать ~/.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

Затем просто отредактируйте ~/.config/fish/functions/fish_prompt.fish, чтобы использовать prompt_long_pwd. Вот пользовательская подсказка, которую я использую:

~ / .config / рыба / 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 / рыба / функции / 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 голосов
/ 08 июня 2009

Функция prompt_pwd определяет отображаемую функцию. Вы должны быть в состоянии написать свою собственную версию, чтобы получить то, что вы хотите.

...