Как определить псевдоним в раковине рыбы? - PullRequest
168 голосов
/ 04 мая 2010

Я хотел бы определить некоторые псевдонимы в рыбе. По-видимому, должно быть возможно определить их в

~/.config/fish/functions

но они не загружаются автоматически при перезапуске оболочки. Есть идеи?

Ответы [ 9 ]

296 голосов
/ 04 мая 2010

Просто используйте 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.

Заинтересованные люди могут узнать больше о псевдонимах рыб в официальном руководстве .

113 голосов
/ 04 мая 2010

Так я определяю новую функцию foo, запускаю ее и сохраняю постоянно.

sthorne@pearl~> function foo
                    echo 'foo was here'
                end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
50 голосов
/ 20 марта 2014

Для потомков псевдонимы рыб - это просто функции:

$ alias foo="echo bar"
$ type foo
foo is a function with definition
function foo
    echo bar $argv; 
end

Чтобы удалить его

$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”
16 голосов
/ 01 октября 2011
  1. если в ~ / .config / fish / нет config.fish , сделайте это.
  2. там вы можете написать свою функцию. function name command end
13 голосов
/ 19 февраля 2013

Сохраните ваши файлы как ~/.config/fish/functions/{some_function_name}.fish, и они должны автоматически загружаться при запуске рыбы.

10 голосов
/ 05 июля 2014

Для правильной загрузки функций из ~ / .config / fish / functions

Вы можете установить только функцию ONE внутри файла и имени файла так же, как имя функции + добавить расширение .fish.

Таким образом, функция изменения содержимого файла перезагружается в открытых терминалах (обратите внимание, что может произойти некоторая задержка ~ 1-5 с) ​​

Таким образом, если вы редактируете по командной строке

function name; function_content; end

тогда

funcsave name

у вас есть определенные пользователем функции в консоли и пользовательские функции в том же порядке.

8 голосов
/ 16 мая 2017

fish начинается с выполнения команд в ~ / .config / fish / config.fish. Вы можете создать его, если он не существует.

step1. сделать файл конфигурации (например, .bashrc)

config.fish

step2. просто напишите свой псевдоним так:

alias rm = "rm -i"

1 голос
/ 27 марта 2019

Если вы добавите abbr вместо alias, вы получите лучшее автозаполнение. В рыбе abbr более точно соответствует поведению псевдонима bash.

abbr -a gco git checkout

Будет -a дд нового abbr уклонения gco, которое расширяется до git checkout.

Вот видео-демонстрация полученных функций автозаполнения

1 голос
/ 07 мая 2017

создайте функцию в ~ / .config / fish / functions с именем mkalias.fish и поместите ее в

function mkalias --argument key value
  echo alias $key=$value
  alias $key=$value
  funcsave $key
end

, и это создаст псевдонимы автоматически.

...