На мой взгляд, правильный ответ с парой голосов ниже. Автозагрузка в ./config/fish/functions, кажется, работает, только если в файле есть одна функция.
mc_electron
Ответы:
360
Просто используйте alias. Вот основной пример:
# Define alias in shell
alias rmi "rm -i"# Define alias in config file
alias rmi="rm -i"# This is equivalent to entering the following function:function rmi
rm -i $argv
end
# Then, to save it across terminal sessions:
funcsave rmi
Эта последняя команда создает файл ~/.config/fish/functions/rmi.fish.
Также обратите внимание, что в рыбах псевдоним - это просто оболочка-оболочка для функции.
user456584
@ user456584 ... и что невозврат, потому что вы не можете сделать alias local "set -l";-(
13
Просто запишите, в какой файл это вставить. Я вставил свой, ~/.config/fish/config.fishчтобы он загружался при каждом запуске терминала.
Ира Герман
Разве нам не нужно заключать в кавычки "$argv"аргументы с пробелами, как мы это делаем с bash "$@"?
KYB
@ kyb, нет, рыба умнее, чем Баш. На самом деле, ВСЕ переменные в рыбе - это массивы. Перейдите к переменным Shell и прокрутите вниз до подраздела Arrays
Гленн Джекман
117
Вот как я определяю новую функцию foo, запускаю ее и сохраняю постоянно.
sthorne@pearl~>function foo
echo 'foo was here'
end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
Спасибо Иеруб. По какой-то причине после funcsave он выдал ошибку: troff: фатальная ошибка: не могу открыть `/usr/share/fish/man/save_function.1 ': такого файла или каталога нет
armandino
7
Вы также можете редактировать функции, используя funced. Например funced foo.
После того как вы создали функцию, вы можете сделать funcsave foo. Это сохранит функцию, в которую ~/.config/fish/functions/foo.fishрыба автоматически загрузит ее при первом вызове из нового сеанса.
Лукретиэль
1
alias foo="echo bar"было безусловно самым простым решением
Ронни
16
если в ~ / .config / fish / нет файла config.fish , сделайте это.
там вы можете написать свою функцию.function name; command; end
Ответы:
Просто используйте
alias
. Вот основной пример:Эта последняя команда создает файл
~/.config/fish/functions/rmi.fish
.Заинтересованные люди могут узнать больше о псевдонимах рыб в официальном руководстве .
источник
alias local "set -l"
;-(~/.config/fish/config.fish
чтобы он загружался при каждом запуске терминала."$argv"
аргументы с пробелами, как мы это делаем с bash"$@"
?Вот как я определяю новую функцию
foo
, запускаю ее и сохраняю постоянно.источник
funced
. Напримерfunced foo
.funcsave {some_function_name}
спасет его~/.config/fish/functions/{some_function_name}.fish
Для потомков псевдонимы рыб - это просто функции:
Удалить его
источник
funcsave foo
. Это сохранит функцию, в которую~/.config/fish/functions/foo.fish
рыба автоматически загрузит ее при первом вызове из нового сеанса.alias foo="echo bar"
было безусловно самым простым решениемfunction name; command; end
источник
Сохраните ваши файлы как,
~/.config/fish/functions/{some_function_name}.fish
и они должны автоматически загружаться при запуске рыбы.источник
fish начинается с выполнения команд в ~ / .config / fish / config.fish. Вы можете создать его, если он не существует:
и сохранить его с
:wq
шаг 1. сделать файл конфигурации (например, .bashrc)
шаг 2. просто напишите свой псевдоним вот так;
источник
Если вы добавите
abbr
вместо,alias
вы получите лучшее автозаполнение. У рыбabbr
более близко совпадает поведение bash с псевдонимом.Будет
-a
дд новоеabbr
уклонение,gco
которое распространяется наgit checkout
.Вот видео демонстрация полученных функций автозаполнения
источник
Чтобы правильно загрузить функции из ~ / .config / fish / functions
Вы можете установить только ОДИН функции внутри файла и имя файла , так же , как имя функции + добавить .fish расширение.
Таким образом, изменение функций загрузки содержимого файла в открытых терминалах (обратите внимание, что может произойти некоторая задержка ~ 1-5 с)
Таким образом, если вы редактируете либо с помощью командной строки
затем
у вас есть пользовательские функции в консоли и на заказ в том же порядке.
источник
создайте функцию в ~ / .config / fish / functions с именем mkalias.fish и поместите ее в
и это создаст псевдонимы автоматически.
источник