是否可以将zsh配置为在制表符完成期间扩展全局别名?例如,我有常见的别名:
alias -g '...'='../..'
alias -g '....'='../../..'
但是例如当我键入
cd .../some<tab>
时,它不会扩展为cd .../something
或cd ../../something
。因此,我经常不使用这些方便的别名,因为它们与制表符完成不兼容。
最佳答案
我是Mikael Magnusson的rationalise-dot
的用户。从我的zshrc中:
# This was written entirely by Mikael Magnusson (Mikachu)
# Basically type '...' to get '../..' with successive .'s adding /..
function rationalise-dot {
local MATCH # keep the regex match from leaking to the environment
if [[ $LBUFFER =~ '(^|/| | |'$'\n''|\||;|&)\.\.$' ]]; then
LBUFFER+=/
zle self-insert
zle self-insert
else
zle self-insert
fi
}
zle -N rationalise-dot
bindkey . rationalise-dot
# without this, typing a . aborts incremental history search
bindkey -M isearch . self-insert
关于zsh - zsh别名扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738707/