나에겐 이런 별칭이 많다
alias -g foo=cmd1
alias -g faz=cmd2
alias -g fam=cmd3
쉘에서 (저는 zsh를 사용하고 있습니다) 다음을 입력하고 싶습니다
echo fa<TAB>
입력하라는 메시지를 표시 faz
하거나fam
전체 별칭옵션이 잘못된 것 같고(작동하지 않음), cmd*
별칭 자체를 완료하지 않고 완료하는 데 compdef가 사용됩니다.
줄 시작 부분에 별칭을 사용하면하다탭 완성을 제공합니다. 라인의 다른 곳에서 사용되는 경우에만 유효합니다.
oh-my-zsh와 유사한 기능전역 별칭전체 이름을 입력하고 공백을 누른 후 별칭을 확장하는 데 작동하지만 전체 이름이 기억나지 않는 경우 별칭을 확장할 수 있는 것을 찾고 있습니다.
답변1
파일 에 다음을 추가하세요 ~/.zshrc
.
autoload -Uz compinit
compinit
# The code below should come _after_ initializing the completion system.
# Autoload the `galiases` table.
zmodload -Fa zsh/parameter p:galiases
# Whenever a completion is attempted, first run `_galiases`.
compdef _galiases -first-
_galiases() {
# Add the completions to the `aliases` group.
local expl
_description aliases expl 'alias'
# Add the keys from `galiases` as the actual completions.
compadd "$expl[@]" -Q -k galiases
}
(여러 개의 완성 함수를 정의할 수 없다는 점에 유의하세요 -first-
. 먼저 호출해야 할 다른 완성 함수가 있는 경우 해당 함수를 모두 호출하는 상위 함수를 정의해야 합니다.)
문서: