настройка приглашения оболочки fi sh внутри nix-оболочки - PullRequest
0 голосов
/ 17 апреля 2020

Я попытался выполнить следующие шаги, чтобы настроить приглашение: https://nixos.wiki/wiki/Fish

В сочетании с приведенной здесь информацией о расположении и содержимом основного c файла: https://fishshell.com/docs/current/faq.html#how -do-i-set-my-prompt

Если я правильно понял, содержание fish_prompt.fish должно быть:

set -l nix_shell_info (
if test -n "$IN_NIX_SHELL"
    echo -n "<nix-shell> "
end
)

function fish_prompt
    set_color $fish_color_cwd
    echo -n (prompt_pwd)
    set_color normal
    echo -n -s ' $nix_shell_info ~>'
end

После установки этого способа приглашение nix-shell или нет, и переменная $nix_shell_info не устанавливается.

Как настроить ее так, чтобы она работала как задумано?

1 Ответ

4 голосов
/ 17 апреля 2020

Вам нужно установить переменную внутри функции, иначе она всегда будет содержать значение, установленное при загрузке файла:

function fish_prompt
    set -l nix_shell_info (
        if test -n "$IN_NIX_SHELL"
            echo -n "<nix-shell> "
        end
    )

    set_color $fish_color_cwd
    echo -n (prompt_pwd)
    set_color normal
    echo -n -s " $nix_shell_info ~>"
end

Редактировать: Как указывал cole-h на IR C вам также необходимо изменить одинарные кавычки, содержащие переменную, на двойные кавычки, иначе они не будут интерполированы.

...