Eu faço muito trabalho no terminal, então aprendi muito sobre o meu shell de escolha, o zsh. Quais recursos do zsh você usa para se tornar muito mais produtivo no trabalho? Um dos meus favoritos é o preenchimento automático multi-dir. Então, ao invés de digitar, cd /fo{tab}/ba{tab}/ba{tab}
eu posso simplesmente fazer cd /fo/ba/ba{tab}
e salvar tantas teclas!
command-line
shell
zsh
Frew Schmidt
fonte
fonte
Respostas:
Acabei de encontrar esta pequena jóia:
Esta forma de
cd
substitui todas as ocorrências deold
no caminho completo do diretório atual pornew
e tenta alterar o diretório de trabalho para o caminho resultante.Por exemplo, se seu diretório de trabalho é
/home/larry/code/backrub/server
e você deseja alternar/home/sergei/code/backrub/server
, tudo o que você precisa fazer é:fonte
Vou manter as coisas que, até onde eu sei, o bash não pode fazer.
Conclusão extravagante. Sim, o bash possui parte disso, mas o zsh conhece mais comandos, geralmente é mais preciso e tem muito mais possibilidades de configuração.
A
**
glob, por exemplo,**/foo
procura por arquivos chamadosfoo
em subdiretórios recursivamente. (E***/foo
também segue links simbólicos.) Dois caracteres em vez de umfind
comando longo (que é difícil de acertar se alguns nomes de arquivos incluírem caracteres especiais, como espaços e aspas).Com menos frequência, qualificadores glob como em
foo*(*)
(comofoo*
, mas apenas retêm arquivos executáveis),foo(.)
(apenas arquivos regulares, não diretórios),foo(-@)
(apenas links simbólicos pendentes),foo*(m-5)
(apenas arquivos modificados nos últimos 5 minutos)foo*(om[1])
(o arquivo modificado mais recentemente) , etc.autocd
: Digitar um nome de diretório como um comando muda para ele (cd
oupushd
dependendo de como você o configurou). Ocd
comando tem três caracteres a mais! Não posso usar o bash por mais de trinta segundos sem sentir a dor. Eu também tenho algumas funções de caractere único, comozmv
builtin, eEnquanto eu estou nisso, o
noglob
builtin.As funções
precmd
epreexec
hook: eu usopreexec
para definir o título do meu terminal para incluir o comando em execução eprecmd
substituir o comando pelo seu código de saída. Algo comobg
(para que Ctrl + Z Ctrl + Z suspenda um programa e o retome imediatamente em segundo plano).setopt append_history autocd extended_glob no_match
fonte
A capacidade do zsh de completar automaticamente coisas além de arquivos e diretórios.
Por exemplo, com o pacote git instalado, o git-sh {tab} exibe:
fonte
Eu realmente gosto dos apelidos globais, então
deixe-me fazer coisas como
e obtenha paginação.
fonte
Como mencionado por outros, o preenchimento automático do zsh é excelente.
Você pode configurar seu próprio preenchimento automático para comandos personalizados sem muito trabalho também. Para tabular nomes de usuário completos como argumentos a serem digitados:
Outras opções que eu gosto de definir:
Pushd e popd também são bastante úteis.
Irritantemente, as teclas home e end não funcionam por padrão no zsh, como em outros shells, mas você pode corrigir isso.
fonte
Ative o preenchimento automático ao usar
scp
em um servidor remoto.O prompt certo para exibir informações adicionais.
fonte