생선 껍질에 별명을 정의하는 방법?


204

물고기에 별명을 정의하고 싶습니다. 분명히 그것들을 정의 할 수 있어야합니다.

~/.config/fish/functions

셸을 다시 시작할 때 자동으로로드되지 않습니다. 어떤 아이디어?


몇 표로 만 아래 답변이 내 의견으로는 맞습니다. ./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.

관심있는 사람들은 공식 매뉴얼 에서 물고기 별명에 대해 더 알고 싶어 할 것 입니다.


3
또한 어류에서 별칭은 함수 주위의 셸 스크립트 래퍼 일뿐입니다.
user456584

@ user456584 ... 그리고 당신이 할 수 없기 때문에 그것은 나쁘다 alias local "set -l";-(

13
이 파일을 넣을 파일을 적어 두십시오. ~/.config/fish/config.fish터미널을 실행할 때마다로드되도록로드했습니다.
Ira Herman

"$argv"bash와 같이 공백이있는 인수를 처리 하기 위해 인용 할 필요는 "$@"없습니까?
kyb

@kyb, 아뇨, 물고기는 bash보다 똑똑합니다. 실제로 물고기의 모든 변수는 배열입니다. 이동 쉘 변수 와 배열 하위 섹션으로 스크롤
글렌 잭맨

117

이것이 내가 새로운 함수를 정의하고 foo실행하고 영구적으로 저장하는 방법입니다.

sthorne@pearl~> function foo
                    echo 'foo was here'
                end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo

고마워요 제럽. funcsave 후 어떤 이유로 든 오류가 발생했습니다 : troff : fatal error :`/usr/share/fish/man/save_function.1 '을 열 수 없습니다 : 해당 파일이나 디렉토리가 없습니다
armandino

7
을 사용하여 기능을 편집 할 수도 있습니다 funced. 예 funced foo.
Dennis

14
실행 funcsave {some_function_name}하면 저장됩니다~/.config/fish/functions/{some_function_name}.fish
Hjulle

55

후손을 위해 어류 별명은 단지 기능입니다.

$ 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

9
함수를 만든 후에는 할 수 있습니다 funcsave foo. 이 기능은에 저장되며 ~/.config/fish/functions/foo.fish, 새 세션에서 처음 호출 될 때 물고기가 자동으로로드합니다.
Lucretiel

1
alias foo="echo bar"가장 쉬운 해결책이었습니다
Ronnie

16
  1. 존재하지 않는 경우 config.fish 에서 ~ /의 .config / 생선 / 그것을합니다.
  2. 거기서 함수를 작성할 수 있습니다.function name; command; end

15

파일을 다른 이름으로 저장 ~/.config/fish/functions/{some_function_name}.fish하면 물고기를 시작할 때 자동으로로드됩니다.


14

물고기는 ~ / .config / fish / config.fish에서 명령을 실행하여 시작합니다. 존재하지 않는 경우 작성할 수 있습니다.

vim ~ / .config / fish / config.fish

와 함께 저장 :wq

1 단계. 구성 파일 만들기 (예 : .bashrc)

config.fish

2 단계. 이렇게 별명을 쓰십시오.

별명 rm = "rm -i"



11

~ / .config / fish / functions 에서 기능을 올바르게로드하려면

파일 및 이름 파일 내에 하나의 기능 만 기능 이름 + .fish 확장자 추가와 동일하게 설정할 수 있습니다 .

이렇게하면 열린 터미널에서 파일 내용 변경 기능이 다시로드됩니다 (약 1 ~ 5 초 지연이 발생할 수 있음)

명령 줄로 편집하면

function name; function_content; end

그때

funcsave name

콘솔에 사용자 정의 기능과 동일한 순서로 사용자 정의 기능이 있습니다.


0

~ / .config / fish / functions에서 mkalias.fish라는 함수를 만들고 이것을 넣습니다.

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

그러면 별칭이 자동으로 생성됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.