Zsh wants to autocorrect a command, with an _ before it

后端 未结 6 1414
终归单人心
终归单人心 2021-01-30 00:11

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

相关标签:
6条回答
  • 2021-01-30 00:24

    I find the autocorrect feature can get annoying at times. So I do in my ~/.zshrc,

    DISABLE_CORRECTION="true"
    
    0 讨论(0)
  • 2021-01-30 00:25

    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.

    0 讨论(0)
  • 2021-01-30 00:28

    Sometime ago after an update, I got command auto-correction enabled which I don't want. If the same happened to you and you want to revert it, in the ~/.zshrc file you'll have make it:
    # Uncomment the following line to enable command auto-correction.
    ENABLE_CORRECTION="false"

    or comment it as per bellow:
    # Uncomment the following line to enable command auto-correction.
    # ENABLE_CORRECTION="true"

    0 讨论(0)
  • 2021-01-30 00:31

    Just a note, on my zsh (version 5.7.1 on macOS), the DISABLE_CORRECTION didn't work.

    I saw in my .zshrc file the following two lines, which I then commented out

    setopt CORRECT
    setopt CORRECT_ALL
    

    That did it for me.

    0 讨论(0)
  • 2021-01-30 00:38

    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.

    0 讨论(0)
  • 2021-01-30 00:47

    I had the same problem even when the command is not installed.

    I can solve it using the CORRECT_IGNORE variable in my .zshrc

    # OPTs to enable
    setopt HASH_LIST_ALL
    setopt CORRECT
    # Zsh variable to determine what to ignore,
    # in this case everything starting with _ or . 
    CORRECT_IGNORE="[_|.]*"
    

    I hope it helps to you or anyone with this issue

    0 讨论(0)
提交回复
热议问题