zsh cd conclusão da correspondência

0

Estou experimentando zsh e há um comportamento de conclusão de tabulação que estou achando chato: parece que se eu digitar cd str e clicar em TAB , ele será preenchido automaticamente com *str* . Por exemplo, cd pl TAB resulta em uma autocompletar cd Applications/ porque 'Ap pl ications' contém 'pl'.

Existe uma maneira de desativar isso?

Eu sei que o zsh tem um recurso de completação de abas onde cd /u/loc/b TAB leva você para /usr/local/bin . Este comportamento está relacionado?

  • Sistema operacional: OSX 10.11
  • Versão do Zsh: 5.0.8
  • plugins do oh-my-zsh: git, zsh-syntax-highlighting, z

UPDATE

Eu acompanhei o bloco de código ofensivo no meu arquivo ~/.oh-my-zsh/oh-my-zsh.sh .

67 if [[ $ZSH_DISABLE_COMPFIX != true ]]; then
68   # If completion insecurities exist, warn the user without enabling completions.
69   if ! compaudit &>/dev/null; then
70     # This function resides in the "lib/compfix.zsh" script sourced above.
71     handle_completion_insecurities
72   # Else, enable and cache completions to the desired file.
73   else
74     compinit -d "${ZSH_COMPDUMP}"
75   fi
76 else
77     compinit -i -d "${ZSH_COMPDUMP}"
78 fi

Ainda estou lendo a documentação e tentando descobrir exatamente o que está acontecendo.

    
por MikeP90 10.06.2016 / 19:03

1 resposta

2

Ok. Eu acho que resolvi isso. Este postar foi muito útil.

Basicamente, oh-my-zsh define a conclusão para

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'

Remover 'l:|=* r:|=*' (que é a última regra) agora me dá o comportamento desejado.

A capacidade de fazer cd /u/lo/b/ TAB não é comprometida.

    
por 24.06.2016 / 16:44