Como cd no diretório nomeado se o comando não for encontrado?

2

Quando eu digito algo que não é um zsh embutido e nenhum executável é encontrado a partir de $ PATH, o zsh apenas relata um erro. Em vez disso, gostaria que o zsh verifique se existe um diretório nomeado com esse nome e o cd dentro dele.

Eu tentei definir a função command_not_found_handler (), mas ela não funcionou, pois ela forja um sub-shell para executar essa função e, portanto, a alteração do diretório não é refletida no shell real.

É algo que já é possível com algumas configurações ou um novo recurso (útil?)?

    
por balki 11.11.2011 / 10:24

2 respostas

2

Acho que você acabou de descrever AUTO_CD .

    
por 11.11.2011 / 10:42
2

O manual do zsh afirma:

If no external command is found but a function command_not_found_handler exists the shell executes this function with all command line arguments. (…) Note that the handler is executed in a subshell forked to execute an external command, hence changes to directories, shell parameters, etc. have no effect on the main shell.

Então você não pode fazer o que você descreveu antes de remendar o zsh.

Você pode criar uma função para cada um de seus diretórios nomeados.

    
por 12.11.2011 / 01:05

Tags