¿Cómo puedo acceder mediante programación a la finalización de zsh?

¿Cómo puedo acceder mediante programación a la finalización de zsh?

zsh tiene un sistema de finalización, que se activa presionando la pestaña:

llama@llama:~$ git st<Tab>
Completing main porcelain command
stash      -- stash away changes to dirty working directory
status     -- show working-tree status
Completing plumbing internal helper command
stripspace -- filter out empty lines

Todo lo que he podido descubrir es que esto proviene del script /usr/share/zsh/functions/Completion/Unix/_git, donde _gitse llama al comando de finalización.

Suponiendo que conozco el nombre de la función de finalización (por ejemplo _git), ¿cómo podría obtener el resultado de lo que sucedería si ingresara una determinada cadena y presionara el tabulador? Básicamente, estoy tratando de recibir información de mi ex. git sty obtenga el resultado anterior (mediante programación, desde un script).

Haymuchosotroexistentepreguntasacerca deesteparabash, pero no he encontrado nada que explique cómo lograr esto con zsh.

Respuesta1

Esto se puede hacer usandofinalización-de-captura-zsh. El archivo README.md del repositorio proporciona varios ejemplos:

capture.zsh 'vim -'
capture.zsh 'vim --'
capture.zsh 'vim --r'
capture.zsh 'echo *('
capture.zsh 'scp hostname:'

Tenga en cuenta que el paquete en sí indica que es una prueba de concepto y, como tal, puede contener errores en su ejecución.

información relacionada