Evite que zsh complete los directorios principales

Evite que zsh complete los directorios principales

Estoy usando zsh con zshrc de grml como base. Como parte de mi trabajo, accedo a rutas de red con regularidad (por ejemplo, NFS. AFS).

Si escribo /a/long/network/path/on/the/other/side/of/the/world, presiono TAB dos veces, es tremendamente lento ya que zsh comienza a buscar en /a/ y luego /a/long /a/long/ red, etc...

Al mismo tiempo, ejecutar ls /a/long/network/path/on/the/other/side/of/the/world regresa en un segundo. Entonces me gustaría decirle a zsh que deje de dudar de mí. (Si escribo /usr/src/linuxx/ y luego presiono tab, se da cuenta de que quería /usr/src/linux/ y, sin embargo, esto es genial porque la red me hace más daño que bien). Me gustaría completar automáticamente "al final" después de la última barra.

A veces uso un CD de solución alternativa en el directorio y luego uso el autocompletado. Seguramente debe haber una manera mejor.

¿Cómo puedo conseguir esto?

Respuesta1

Este tipo de comportamiento se configura a través deestilos(excepto algunos fundamentos que tienen opciones). Querrás apagarpath-completion.

De forma predeterminada, la finalización de nombre de archivo examina todos los componentes de una ruta para ver si hay terminaciones de ese componente. Por ejemplo, /u/b/zse puede completar hasta /usr/bin/zsh. Establecer explícitamente este estilo en falso inhibe este comportamiento para los componentes de la ruta hasta /antes del cursor.

zstyle ':completion:*' path-completion false

Es posible que desees encenderaccept-exact-dirsen cambio. Con path-completionla opción izquierda y accept-exact-dirsactivada, zsh solo intentará completar los componentes de la ruta distintos del último si la ruta no existe.

zstyle ':completion:*' accept-exact-dirs true

información relacionada