2009-02-19 9 views
33

¿Cómo puedo configurar el Zsh para rellenar la ficha de tal manera que cuando escribo cd ..<TAB> se expande a cd ../ y después de pulsar <TAB> propone de nuevo las carpetas en el directorio principal para la terminación?Zsh para rellenar la ficha de "cd .."

E.g. debe mostrar el mismo comportamiento que al escribir, por ejemplo cd Documents<TAB> que se expande a cd Documents/ y luego de presionar <TAB> propone nuevamente las carpetas en Documents para completar.

Como punto de partida para la configuración utilizo un .zshrc vacío y Zsh 4.3.9 de MacPorts.

+0

durante mucho tiempo Tuve esta duda – JuanPablo

Respuesta

56

Mismo problema con debian inestable, Ubuntu jaunty, ambos nave zsh 4.3.9. Sé de varias personas con diferentes configuraciones.

Después de leer http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=514152 añadí

zstyle ':completion:*' special-dirs true 

a mi config y ahora todo funciona bien de nuevo.

+12

'man zshcompsys' también sugiere esto: ' zstyle -e ': terminación: *' special-dirs '[[$ PREFIX = (../) # (|. | ..)]] && reply = (..) '' que evita que ''/'' y "../ '' se propongan todo el tiempo. – exic

-10

Esto puede o no puede ser una respuesta útil - cambie a bash, que hace lo que quiere de la caja.

+11

Eso es algo así como decirle a un usuario de vim que cambie a emacs, porque no puede encontrar un interruptor de configuración ... IMHO zsh es más poderoso que bash y también viene con una gran finalización función. Solo tiene que activarlo ... – f3lix

8

poner esto en su ~/.zshrc:

autoload -Uz compinit 
compinit 

También hay un proyecto con funciones zsh/configuraciones para Mac OS X en http://code.google.com/p/zsh-templates-osx/. Personalmente, creo que es excesivo usar todo el paquete. Pero me pareció útil seleccionar algunos trucos, funciones, terminaciones, etc. y crear mi propio .zshrc

+0

Gracias, esto configura exactamente el comportamiento que estaba buscando. –

+0

¿Qué hace la opción z en tu código? –

+0

opciones de línea de comando de carga automática: -U - suprimir la expansión de alias para las funciones -k - función de marca para carga automática de estilo ksh -t - activar el seguimiento de ejecución para las funciones -w - especificar que los argumentos se refieran a los archivos compilados con zcompile -z - función de marca para carga automática de estilo zsh – f3lix

2

De hecho, ahora descubrí que el problema no parece provenir de la configuración. Cuando se utiliza un .zshrc que sólo contiene

autoload -Uz compinit 
compinit 

La rellenar la ficha funciona como se pretende para cd ..<TAB> cuando se utiliza el valor por defecto de Mac OS X Zsh (4.3.4). Pero con MacPorts Zsh (4.3.9) la terminación de pestañas solo funciona para otras carpetas y no para ...