次のように入力すると:
echo "$((1 + 2))"
次に、を押すと、TabZSHは私が入力した内容を次のように変換します。
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'
これは、単に現在のシェル単語(カーソルがある単語)がフォーマットのときに完成者を$((…))
使用しないように、完成システムに指示します。_expand