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/z
se 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-dirs
en cambio. Con path-completion
la opción izquierda y accept-exact-dirs
activada, zsh solo intentará completar los componentes de la ruta distintos del último si la ruta no existe.
zstyle ':completion:*' accept-exact-dirs true