zsh: comando não encontrado: {compinstall, compinit, compdef}

2

A zshcompsys man -page diz:

INITIALIZATION

If the system was installed completely, it should be enough to call the shell function compinit from your initialization file; see the next section. However, the function compinstall can be run by a user to configure various aspects of the completion system.

zsh não consegue encontrar os comandos:

genesis% compinit
zsh: command not found: compinit
genesis% compinstall
zsh: command not found: compinstall
genesis% echo $PATH
/home/ravi/bin:/home/ravi/.gem/ruby/2.4.0/bin:/home/ravi/bin:/home/ravi/.gem/ruby/2.4.0/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/local/heroku/bin:/home/ravi/.cabal/bin:/home/ravi/.local/share/fzf/bin:/usr/local/heroku/bin:/home/ravi/.cabal/bin
genesis%

Eu sou o responsável por fazer essa pergunta, porque ao iniciar zsh , obtenho:

tmuxinator.zsh:20: command not found: compdef

Como obtenho zsh para encontrar esses comandos de conclusão?

    
por Tom Hale 25.01.2017 / 06:24

2 respostas

4

Responda à pergunta conforme solicitado

Acesse esses comandos executando:

$ autoload -Uz compinstall && compinstall

Ele carregará um assistente guiado, eu saí assim que tiver a opção para Save and exit .

Em seguida, recarregue o shell:

$ exec zsh

Resposta mais geral

Parece que a nova configuração do usuário não foi executada.

Execute:

$ autoload -Uz zsh-newuser-install && zsh-newuser-install -f
    
por 25.01.2017 / 06:35
0

Este é o mesmo problema que tenho no meu mac. Estou usando o shell zsh.

Compdef é basicamente uma função usada pelo zsh para carregar as auto-completions. O sistema de conclusão precisa ser ativado. Se você está usando algo como oh-my-zsh , isso já está resolvido, caso contrário, você precisará adicionar o seguinte ao seu ~ / .zshrc

autoload -Uz compinit
compinit

As funções de conclusão podem ser registradas manualmente usando a função compdef diretamente como este compdef. Mas o compinit precisa ser autoloaded no contexto antes de usar o compdef.

    
por 26.10.2018 / 09:43