탭 완료 중에 전역 별칭을 확장하도록 zsh를 구성할 수 있습니까? 예를 들어, 공통 별칭이 있습니다.
alias -g '...'='../..'
alias -g '....'='../../..'
하지만 입력해도 또는 cd .../some<tab>
로 확장되지 않습니다 . 따라서 가고 싶은 곳을 탭으로 이동할 수 없기 때문에 이러한 편리한 별칭을 자주 사용하지 않습니다.cd .../something
cd ../../something
답변1
찾아보세요zsh 약어. 스페이스와 같은 마법 키를 누르면 자동으로 전체 형태로 바뀌는 "약어"를 입력할 수 있습니다. 따라서 변경 ...<SPACE>
사항을 만들 수 있습니다 ../..
.
예를 들어 프로필에는 다음이 필요합니다.
typeset -A abbrevs
abbrevs=(
"..." "../.."
"...." "../../.."
)
#create aliases for the abbrevs too
for abbr in ${(k)abbrevs}; do
alias -g $abbr="${abbrevs[$abbr]}"
done
my-expand-abbrev() {
local MATCH
LBUFFER=${LBUFFER%%(#m)[_a-zA-Z0-9]#}
LBUFFER+=${abbrevs[$MATCH]:-$MATCH}
zle self-insert
}
zle -N my-expand-abbrev
bindkey " " my-expand-abbrev
bindkey -M isearch " " self-insert
답변2
나는맞춤형 ZLE 위젯이렇게 하려면 에 넣으면 됩니다 $fpath
. 그런 다음 구성할 수 있습니다.이 방법.