Ecco tre domande in una ;-)
Opzione AUTO_CD e come trovarla
Innanzitutto l'opzione che stai cercando è AUTO_CD. Puoi trovarlo facilmente guardando in alto man zshoptions
. Utilizzare la funzione di ricerca dei cercapersone, in genere si preme /e si inserisce la parola chiave. Con nte salti alla prossima occorrenza. Questo farà apparire quanto segue:
[..]
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.
[..]
L'opzione può essere disattivata utilizzando unsetopt AUTO_CD
.
Spegnendolo correttamente
Stai usando oh-my-zsh che è descritto come
"Un framework guidato dalla community per la gestione della configurazione di zsh" Include oltre 120 plugin opzionali (rails, git, OSX, hub, capistrano, brew, ant, macports, ecc.), ...
Quindi la prossima cosa da scoprire è come abilitare / disabilitare le opzioni in base al framework.
Il file readme.textile afferma che il modo preferito per abilitare / disabilitare i plugin sarebbe una voce nel tuo .zshrc: plugins=(git osx ruby)
Scopri quale plugin utilizza l'opzione AUTO_CD. Come scoperto dalla manpage, può essere invocato tramite l'opzione -J o AUTO_CD. Dato che oh-my-zsh è disponibile su github, la ricerca di esso farà apparire il file lib/theme-and-appearance.zsh
. Se non si desidera disabilitare l'intero "tema-e-aspetto" del plugin, inserire un unsetopt AUTO_CD
nel proprio .zshrc. Non modificare direttamente i file di oh-my-zsh, perché in caso di aggiornamento del framework, le modifiche andranno perse.
Perché gli eseguibili non vengono richiamati direttamente
La terza domanda è come eseguire direttamente un binario: devi eseguire il tuo file binario tramite un percorso, ad esempio con un prefisso ./
come in ./do-something
. Questa è una sorta di funzione di sicurezza e non deve essere modificata. Cerco di collegare una chiavetta USB, montarla e dargli un'occhiata ls
. Se c'è un eseguibile chiamato ls
che cancella la tua home directory, tutto sarebbe andato, poiché questo avrebbe sovrascritto l'ordine del tuo $ PATH.
Se hai comandi che chiami ripetutamente, impostare un alias nel tuo .zshrc sarebbe una soluzione comune.
unsetopt auto_cd
linea (ho menzionato esplicitamente che l'eseguibile è nel mio percorso, tuttavia, la spiegazione potrebbe aiutare altri utenti a capire le cose).