2012-07-30 13 views
13

Tengo un alias personalizado para git que uso con git df (básicamente es un atajo para git diff).Haciendo que la autocorrección de zsh funcione con alias personalizados de git

Sin embargo, la autocorrección zsh de git, cada vez que utilizo git df en un directorio que contiene un directorio db, me sale esto:

% ls 
app/ config/ db/ lib/ log/ spec/ 

% git alias | grep "df" 
df = diff 

% git df 
zsh: correct 'df' to 'db' [nyae]? 

¿Hay alguna manera de que pudiera hacer zsh consciente de mis alias git por lo que los toma en cuenta cuando intentas autocorregir mis comandos? Quiero que detecte que git df existe y no me sugiera git db en su lugar.

No deseo crear un alias zsh (por ejemplo, alias gdf="git diff") o use alias git="nocorrect git".

Gracias por su ayuda!

+1

Creo que es más fácil de desactivar la corrección automática por completo: Yo no he visto algo que no sea la corrección de los nombres de archivo. Y cosas como 'srun command' /' cave resolve package' con tener el directorio de configuración '.command' /' .package' son realmente repugnantes. Hay demasiados comandos como este para agregar un alias para cada uno de ellos. – ZyX

+1

Al principio pensé que era una idea loca desactivarlo por completo, pero luego me di cuenta de que la autocorrección no era lo mismo que la autocompletación. Me gusta el autocompletado, pero últimamente la autocorrección se ha puesto en mi camino. Lo deshabilité con 'unsetopt correct_all' y veremos cómo funciona. ¡Gracias por la sugerencia! – remi

Respuesta

3

Puede forzar zsh para reconstruir la caché de autocorrección mediante la ejecución del comando hash -rf o rehash. Eso solucionó mi problema cuando zsh se autocorregía a la cosa incorrecta.

+1

Esto es diferente: ordena hash que contiene "nombre de comando" - relación "ruta a binario" así como "directorio nombrado" - "ruta real". Su comando no corregirá las autocorrecciones en este caso, puede corregir solo correcciones automáticas de comandos. – ZyX

3

Git tiene una función de autocorrección:

git config --global help.autocorrect 

esperará 2s antes autocorrecting:

git config --global help.autocorrect 2 

Creo que si se desea implementar esta característica en zsh tendrá que cambiar la finalización git funcionar directamente

1

A veces, encuentro que la corrección automática se vuelve un poco molesta. Así que me gusta hacer en tu ~/.zshrc,

DISABLE_CORRECTION="true" 

Esto desactiva la función de corrección automática. De lo contrario, se podría hacer

alias git="nocorrect git" 

pero parecen ser reacios a que

Cuestiones relacionadas