Zsh의 물고기 스타일 약어
2700 단어 zshfishabbreviations
명령줄에서 구문 강조 표시, 위쪽/아래쪽 화살표를 눌러 역 이력 검색 및 몇 가지 더 많은 것과 같은 좋은 것들이 많이 있지만 POSIX와 호환되지 않는다는 잘못된 방식으로 계속 문지르고 있습니다( bash 또는 zsh ), 그래서 결국 zsh로 돌아갔습니다.
그러나 나는 몇 가지 기능이 훌륭하기 때문에 몇 가지 기능을 가져 왔으며 약어가 그 기능 중 하나입니다. 그것들은 일종의 별칭과 비슷하지만 적어도 제 생각에는 더 좋습니다.
약어와 별칭
모든 쉘에는 별명이라는 것이 있습니다.
별칭은 다음과 같이 작동하며
alias gst="git status"
와 같은 별칭을 정의합니다. 그런 다음 터미널에 gst
를 입력하고 Enter 키를 누르면 터미널이 git status
명령을 실행하고 예상대로 출력을 표시합니다.물고기에서는 다음과 같이 약어를 정의할 수도 있습니다.
abbr -a -g gst git status
별칭과 거의 동일한 방식으로 작동하지만 한 가지 매우 중요한 예외가 있습니다. 터미널에
gst
를 입력하고 공백을 누르면 터미널이 약어를 확장합니다. 공백 대신 Enter 키를 누르면 약어가 확장되고 명령이 실행됩니다.즉,
git status
대신 gst
로 기록을 보고 여러 줄을 보면 실행된 명령을 더 쉽게 볼 수 있으며 터미널에서 직접 실행한 명령을 복사할 수도 있습니다. , 동료에게 보내고 원하는 경우 직접 붙여넣고 실행할 수 있습니다. 그들은 내 셸 구성에 어떤 별칭이 있는지 알 필요가 없습니다.Zsh에서 이것을 얻는 방법?
내
~/.zshrc
에 이러한 기능을 추가하기만 하면 약어 나열을 시작할 수 있습니다.# declare a list of expandable aliases to fill up later
typeset -a ealiases
ealiases=()
# write a function for adding an alias to the list mentioned above
function abbrev-alias() {
alias $1
ealiases+=(${1%%\=*})
}
# expand any aliases in the current line buffer
function expand-ealias() {
if [[ $LBUFFER =~ "\<(${(j:|:)ealiases})\$" ]]; then
zle _expand_alias
zle expand-word
fi
zle magic-space
}
zle -N expand-ealias
# Bind the space key to the expand-alias function above, so that space will expand any expandable aliases
bindkey ' ' expand-ealias
bindkey '^ ' magic-space # control-space to bypass completion
bindkey -M isearch " " magic-space # normal space during searches
# A function for expanding any aliases before accepting the line as is and executing the entered command
expand-alias-and-accept-line() {
expand-ealias
zle .backward-delete-char
zle .accept-line
}
zle -N accept-line expand-alias-and-accept-line
그런 다음 다음과 같이 약어를 추가할 수 있습니다.
abbrev-alias g="git"
abbrev-alias gst="git status"
abbrev-alias gcb="git checkout --branch"
abbrev-alias ll="ls -l"
Reference
이 문제에 관하여(Zsh의 물고기 스타일 약어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/frost/fish-style-abbreviations-in-zsh-40aa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)