zsh memiliki sistem penyelesaian, diaktifkan dengan menekan tab:
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
Yang saya tahu adalah bahwa ini berasal dari skrip /usr/share/zsh/functions/Completion/Unix/_git
, di mana _git
perintah penyelesaian dipanggil.
Dengan asumsi saya tahu nama fungsi penyelesaian (misalnya _git
), bagaimana saya bisa mendapatkan output dari apa yang akan terjadi jika saya memasukkan string tertentu dan menekan tab? Pada dasarnya, saya mencoba untuk mengambil input dari mantan. git st
dan dapatkan output di atas (secara terprogram, dari skrip).
Ada banyak pertanyaan lain yang ada tentang ini untuk bash, tapi saya belum menemukan apa pun yang menjelaskan bagaimana mencapainya dengan zsh.
zsh
autocomplete
Gagang pintu
sumber
sumber
Jawaban:
Ini bisa dilakukan dengan menggunakan zsh-capture-completion . File README.md repositori menyediakan beberapa contoh:
Perhatikan bahwa paket itu sendiri menyatakan bahwa itu adalah bukti konsep, dan karena itu mungkin mengandung kesalahan dalam pelaksanaannya.
sumber