ZSH에서 산술 표현식 완성 비활성화

ZSH에서 산술 표현식 완성 비활성화

다음을 입력하면:

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

관련 정보