[HN Gopher] ZSH Completions How To ___________________________________________________________________ ZSH Completions How To Author : ossusermivami Score : 67 points Date : 2021-12-04 18:58 UTC (4 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | beebmam wrote: | I really, really don't like completions as a feature in virtually | any shell. I much prefer reverse search. | GhettoComputers wrote: | Have you tried fish? You can partially complete the query and | use the arrow buttons, and the search is fuzzy if you use the | previous commands search. Typing Sudo for instance and arrow | will show my previous sudod commands. | Fnoord wrote: | Yup, its great. Problem is, the syntax is slightly different | from Bash. So whenever I use a shell script or use some kind | of commands where the differences are incompatible, I tend to | switch to Bash. And then my history doesn't add up with the | one from Fish. | | For fuzzy search I bound ctrl+r to fzf (you can use Rust's sk | too). | HellsMaddy wrote: | These things are not mutually exclusive, right? I use both to | great effect. | Bayart wrote: | You can have both. | ivank wrote: | Were you thinking of autosuggestions? (completions are command- | specific assistance you get when you hit Tab) | cassianoleal wrote: | I have an edge-case for zsh completion that I'd love to know if | there's a way to implement. | | I've declared a function `k` which tests if I'm currently on a | `kubie` [0] shell. If it isn't, it runs `kubie ctx`; if it is, it | runs `kubectl $@`. | | I never write kubectl directly but rather run this `k` function. | This way I'm always in the context I want and don't get surprises | since I'm forgetful. | | I'd like for this function to complete like it was kubectl | itself. | | So far I've tried: compdef k=kubectl | compdef _kubectl k compdef '_bash_complete -o default -F | __start_kubectl' k | | The last one is from the below, although I don't really | understand what it's doing: $ grep kubectl | ~/.zcompdump 'kubectl' '_bash_complete -o default -F | __start_kubectl' autoload -Uz _bat _brew _git _j _kubectl | \ | | [0] https://github.com/sbstp/kubie | GhettoComputers wrote: | I've spend hours trying to get it to work as well as fish, but | even the installed configs I miss one thing or another and | autocomplete is still missing features. It's a mess and really | slow. | | Without color, and trying to get NSH working with autocomplete | (with bash autocomplete) it still didn't work in NSH. I if it | wasn't for fish I'd still be using GUI, and if it was this and | bash, I would have never felt comfortable configurating stuff I | didn't understand. | maven29 wrote: | Why not generate them from the manpages [1] or from the output of | the --help option [2] | | [1] https://github.com/nevesnunes/sh-manpage-completions | | [2] https://github.com/RobSis/zsh-completion-generator | boibombeiro wrote: | I hate how complex it to write a decent zsh completion. It is not | something you can realistic do in a weekend. | | You can implement a simple one without much effort. But doing | anything a bit more interesting need to dig into zle, and there | is only a few resources available online. | GhettoComputers wrote: | Fish has sane defaults. I don't think using shell scripts is a | great idea. The creator of oil shell pops up pretty often, he | has some default scripts that might be useful for some. ___________________________________________________________________ (page generated 2021-12-04 23:00 UTC)