
Tengo un problema con el autocompletado de ZSH y no puedo encontrar las teclas adecuadas para solucionarlo.
Por ejemplo, con archivos como
$ ls
Accelion, titi toto tata
Me gustaría escribir:
$ ls cc<TAB>
y obten _No_completado, en lugar de Accelion
.
Aquí está la opción actualmente configurada:
$ set -o | grep " on"
alwaystoend on
autocd on
autonamedirs on
autopushd on
nobeep on
cdablevars on
extendedhistory on
noflowcontrol on
nohistbeep on
histexpiredupsfirst on
histignoredups on
histignorespace on
histverify on
incappendhistory on
interactive on
interactivecomments on
nolistambiguous on
nolistbeep on
longlistjobs on
nonomatch on
promptsubst on
pushdignoredups on
shinstdin on
avíseme si necesita más detalles como zle
opciones (¡y cómo deshacerse de ellas!)
EDITAR:zsh4.3.17(x86_64-redhat-linux-gnu)
Respuesta1
No mencionaste qué versión zsh
estás usando. Estoy asumiendo la versión 4.
Su zsh
shell realiza primero la coincidencia en lugar de la finalización verdadera, como probablemente esté acostumbrado. Este comportamiento se puede personalizar ordenando y, opcionalmente, personalizando los completadores. Puedes encontrar más información sobre cómo hacerlo enesta guía.
El comportamiento que está viendo es una coincidencia que potencialmente no distingue entre mayúsculas y minúsculas:
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
La forma más rápida de solucionar este comportamiento sin profundizar demasiado en la guía es buscar y comentar la línea similar anterior o ejecutar autoload -Uz compinstall
y luego compinstall
. Esto lo guiará a través de un asistente básico para personalizar su zsh
comportamiento. Le hará algunas preguntas y luego creará un formulario simple ~/.zshrc
que podrá personalizar a medida que se sienta más cómodo con las opciones. Copie ~/.zshrc
primero su off para tener una referencia si hay comportamientos que desea conservar.