bash - robbyrussell - zsh command completion




Vale a pena mudar para zsh para uso casual? (4)

Mude para zsh. Você terá acesso a:

  1. zmv : Você pode fazer: zmv '(*).mp3' '$1.wma' para milhares de arquivos.
  2. zcalc : zcalc extremamente confortável, melhor que bc .
  3. zparseopts : One-liner para analisar opções complexas arbitrárias dadas ao seu script.
  4. autopushd : você sempre pode fazer o popd após o cd para voltar ao seu diretório anterior.
  5. Suporte de ponto flutuante. É necessário de tempos em tempos.
  6. Hashes de suporte. Às vezes eles são apenas uma característica fundamental.

O shell padrão no Mac OS X é o bash , que geralmente fico feliz em usar. Eu apenas dou por certo. Seria muito bom se completasse automaticamente mais coisas , e eu ouvi coisas boas sobre zsh esse respeito. Mas eu realmente não tenho a inclinação de passar horas mexendo com configurações para melhorar o uso da minha linha de comando em uma pequena quantidade, já que minha vida na linha de comando não é tão ruim assim.

(Pelo que entendi, o bash também pode ser configurado para auto-completar de forma mais inteligente. É a configuração que eu não estou muito interessado.)

zsh para o zsh , mesmo em um número pequeno de casos, facilita a minha vida? Ou é apenas uma concha melhor se você colocar no tempo para aprender porque é melhor? (Exemplos também seriam bons :) )

@ Rodney Amato & @ Vulcan Eager dar duas boas razões para, respectivamente, manter o bash e mudar para zsh . Parece que vou ter que investigar os dois! Oh bem :)

Existe alguém com uma opinião de ambos os lados do argumento?


Para uso casual, você provavelmente está melhor com o bash e apenas instalando a conclusão do bash.

Instalá-lo é muito fácil, pegue o bash-completion-20060301.tar.gz de http://www.caliban.org/bash/index.shtml#completion e extraia-o com

tar -xzvf bash-completion-20060301.tar.gz

copie o arquivo bash_completion / bash_completion para / etc com

sudo cp bash_completion/bash_completion /etc

que solicitará sua senha. Você provavelmente vai querer fazer um diretório /etc/bash_completion.d para quaisquer scripts de conclusão adicionais (por exemplo, eu tenho o script de conclusão do git lá).

Uma vez feito isso, o último passo é certificar-se de que o arquivo .bash_profile em seu diretório home tenha

if [ -f /etc/bash_completion ]; then
     . /etc/bash_completion 
fi

nele para carregar o arquivo de conclusão quando você faz o login.

Para testar basta abrir um novo terminal, e tente completar o cvs e ele deverá mostrar as opções do cvs na lista de completações.


Se tudo o que você quer usar ZSH for melhor conclusão, a configuração é muito fácil. Coloque isso no seu ~ / .zshrc:

autoload -U zutil      # [1]
autoload -U compinit   # [2]
autoload -U complist   # [3]
compinit

No entanto, vale a pena conferir todos os outros ótimos recursos do ZSH. O exemplo acima lhe dará um prompt bem simples com boa conclusão. Se você não quer mexer com configurações, mas quer ver o que ZSH pode fazer por você, o Google para "zshrc" e você terá algumas configurações prontas para usar para começar.


Staale está falando sobre um assistente como programa (CUI), que é executado automaticamente na primeira vez que você executa o zsh. Basta responder algumas perguntas, visualizar / alterar os padrões e seus configurados para você.

O IBM developerWorks possui ótimos recursos no zsh.

Eu não usei recursos muito avançados e, até agora, não encontrei diferenças sérias que pudessem atrapalhar alguém vindo do bash.

Alguns exemplos:

  • O padrão <Tab> será preenchido automaticamente para o último comando no padrão de correspondência do histórico. Muito útil.

  • Você pode configurar um prompt no RHS. Um uso é manter um prompt de largura fixa no lado esquerdo para que todos os comandos se alinhem bem enquanto exibem o pwd (ou qualquer coisa de largura variável) como o prompt do lado direito.

  • Você pode redirecionar a entrada de vários arquivos (ainda para tentar isso): cat <file1 <file2 <file3





zsh