如果我输入:
echo "$((1 + 2))"
然后按Tab,ZSH 会将我输入的内容转换为:
echo 3
我怎样才能禁用这种行为?当我按下 时,我不希望 ZSH 计算算术表达式Tab。
我想要扩展除算术表达式之外的所有内容。
答案1
没有您想要的具体设置,但这有效:
autoload -Uz compinit
compinit
bindkey '^I' complete-word
zstyle -e ':completion:*' completer '
if [[ $PREFIX$SUFFIX == \$\(\(*\)\) ]]; then
reply=( _complete _ignored )
else
reply=( _expand _complete _ignored )
fi'
这只是告诉完成系统,当当前 shell 单词(光标所在的单词)的形式为 时$((…))
,则不要使用_expand
完成器。