I just started using Zsh lately for some of the integrated support in the shell prompt for my Git status etc.
When I type in:
ruby -v
to confirm the version of ruby I'm running, Zsh asks if I want to change the command to _ruby. Well after saying no at the prompt and the command completing as expected I continue to get the question at the prompt after confirming my command is correct.
I'm assuming there is a completion file or something of the sort.
Thanks
Update:
The shell is no longer trying to complete _ruby, it stopped responding after closing the shell a few times some how.
I tried to clean the file up several times but there is a "opts" variable that is 50 or more lines long and the lines are all ran together, some lines more than 150 characters. Maybe I could email an attachment to you if you still want to see it. I sincerely apologize for the messy post.
This is command autocorrection, activated by the correct
option. It has nothing to do with completion. You're seeing _ruby
because zsh thinks there is no ruby
command and it offers _ruby
as the nearest existing match.
If you've just installed ruby
, it's possible that zsh
has memorized the list of available command earlier, and it won't always try to see if the command has appeared in between. In that case, run hash -rf
. Future zsh sessions won't have this problem since the ruby
command already existed when they started.
Sometimes, when you change your PATH
, zsh forgets some hashed commands. The option hash_listall
helps against this. As above, if you can force zsh to refresh its command cache with hash -rf
.
You could make an alias:
alias ruby='nocorrect ruby'
It's what I did when zsh kept asking me if I meant .meteor
when I typed meteor
because auto-correct is still useful from time to time.
I find the autocorrect feature can get annoying at times. So I do in my ~/.zshrc,
DISABLE_CORRECTION="true"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With