São três perguntas em uma ;-)
Opção AUTO_CD e como encontrá-lo
Antes de mais nada, a opção que você procura é AUTO_CD. Você pode encontrá-lo facilmente olhando para cima man zshoptions
. Use a função de busca de pagers, normalmente você pressiona /e insere a palavra-chave. Com nvocê pule para a próxima ocorrência. Isso trará o seguinte:
[..]
Changing Directories
AUTO_CD (-J)
If a command is issued that can't be executed as a normal command, and the command is the name of a directory, perform the cd command to that directory.
[..]
A opção pode ser desabilitada usando unsetopt AUTO_CD
.
Desligando-o corretamente
Você está usando oh-my-zsh, que é descrito como
"Uma estrutura orientada pela comunidade para gerenciar sua configuração zsh" Inclui mais de 120 plug-ins opcionais (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), ...
Portanto, o próximo passo é descobrir como ativar / desativar as opções de acordo com a estrutura.
O arquivo readme.textile afirma que a maneira preferida de ativar / desativar plug-ins seria uma entrada no seu arquivo .zshrc: plugins=(git osx ruby)
Descubra qual plug-in usa a opção AUTO_CD. Como descoberto na página de manual, ele pode ser chamado pelo switch -J ou AUTO_CD. Como o oh-my-zsh está disponível no github, sua pesquisa aumentará o arquivo lib/theme-and-appearance.zsh
. Se você não deseja desativar todo o plugin "tema e aparência", coloque um unsetopt AUTO_CD
no seu .zshrc. Não modifique os arquivos do oh-my-zsh diretamente, porque caso você esteja atualizando a estrutura, suas alterações serão perdidas.
Por que os executáveis não são chamados diretamente
Sua terceira pergunta é como executar um binário diretamente: você deve executar seu arquivo binário através de um caminho, por exemplo, com um prefixo ./
como em ./do-something
. Esse é um tipo de recurso de segurança e não deve ser alterado. como conectar um pendrive, montá-lo e dar uma olhada nele ls
. Se houver um executável chamado ls
que exclua seu diretório pessoal, tudo acabaria, pois isso teria sobrescrito a ordem do seu $ PATH.
Se você tiver comandos que você chama repetidamente, a configuração de um alias no seu .zshrc seria uma solução comum.
unsetopt auto_cd
linha (mencionei explicitamente que o executável está no meu caminho; no entanto, a explicação pode ajudar outros usuários a entender as coisas).PATH
variável de ambiente que eles querem ter precedência sobre o autocd. Não tem nada a ver com a incapacidade do shell script de executar um executável a partir de um caminho sem especificar um./
ou outro/
.lib
diretórioplugins
OMZ não tem nada a ver com. Quanto à pergunta e, como você disse, o comando correto éunsetopt
.