
タブの完了中にグローバルエイリアスを拡張するように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
。その後、設定できます。この方法。