Pregunta

En zsh, tengo una llamada g función que actúa como esto:

  • sin argumentos, llamada git status
  • con uno o más argumentos, delegado de git con todos los argumentos dados - es decir, la llamada git $@

Me gustaría que las terminaciones de tabulación para g a ser exactamente el mismo que para git. Puedo lograr esto con alias g=git, pero que no permite que llame a status por defecto (el primer punto anterior).

¿Cómo se puede delegar a la realización de git?

En bash, simplemente hice complete -F _git g que re-usos función de finalización de git. Con zsh, miradas de finalización de git mucho más complejo, y me wa no poder encontrar una solución similar.

supongo que hay alguna función en zsh decir "pretendo Mecanografié comando [x], lo que podría completar a?". Si supiera lo que era, debería ser bastante simple de usar una función de delegado a la misma. Pero he encontrado ninguna tal función en los manuales.

¿Fue útil?

Solución

La documentación de compdef dice lo siguiente:

  

El compdef función se puede utilizar para asociar funciones de completado existentes con nuevos comandos. Por ejemplo,

compdef _pids foo

Sin embargo, adaptándolo (_git es la función de finalización habitual para git ) no ha dado ningún resultado trabajando para mí (incluso después de _git había sido autocargado):

compdef _git g

Yo era capaz de conseguir que funcione a través de _dispatch sin embargo:

compdef '_dispatch git git' g
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top