Конфигурации в fish

#linux #shell #fish

#linux #оболочка #fish

Вопрос:

Я только начал использовать fish .Я использовал zsh и bash раньше. Куда мне поместить конфигурации fish ?

Пример конфигураций- https://bpaste.net/show/92f553c9aab8

Я попробовал это, ~/config/fish/config.fish но это дало мне ошибки. Ошибки, которые я получил: https://bpaste.net/show/e136cc91f188

Замена amp;amp; на ; удаляет ошибки. Но делает ли это то же самое? Если нет, как я могу добиться того же, что и с amp;amp; .

Ошибка с равными:

 $ iitpi conda update --all
Unsupported use of '='. To run 'https_proxy=http://10.10.78.21:3128' with a modified environment, please use 'env http_proxy=http://10.10.78.21:3128 https_proxy=http://10.10.78.21:3128…'
in function “iitpi”
        called on standard input
        with parameter list “conda update --all”
  

Комментарии:

1. Хммм, почему понижающий голос? Чего очевидного мне не хватает.

2. Вам, по-видимому, не хватает документации: fishshell.com/docs/current/index.html

3. @glennjackman пожалуйста, проверьте обновление.

Ответ №1:

Там несколько ошибок. синтаксис fish отличается от синтаксиса zsh и bash

Не это:

 alias ipy="(jupyter qtconsole amp;)"
  

в fish (...) есть синтаксис подстановки команд, например, обратные ссылки zsh / bash или $(...) . Сделайте это:

 function ipy
    jupyter qtconsole amp;
end
  

потому что псевдонимы fish — это просто синтаксический сахар для функций

В bash (...) содержимое запускается в подоболочке. Если вы действительно хотите сделать это в fish, вы должны быть явными:

 function ipy
    fish -c 'jupyter qtconsole' amp;
end
  

amp;amp; это bash; and команда fish, так что не это:

 command1 amp;amp; command2_if_cmd1_succeeds
  

но это

 command1; and command2_if_cmd1_succeeds
  

Комментарии:

1. Спасибо! Это исправляет большую часть вещей, за исключением проблемы равенства со знаком. Пожалуйста, проверьте редактирование в вопросе.

Ответ №2:

Конфигурации Fish идут в ~/.config/fish/ (обратите внимание на точку). Я бы избегал одной конфигурации.извлекайте и вместо этого используйте отдельные файлы для каждого приложения / предмета в conf.d/ , т.е. ~/.config.fish/conf.d/10-homebrew.fish .