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 _git
se 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 st
y 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.