C'est trois questions en une ;-)
Option AUTO_CD et comment la trouver
Tout d'abord, l'option que vous recherchez est AUTO_CD. Vous pouvez facilement le trouver en levant les yeux man zshoptions
. Utilisez votre fonction de recherche de téléavertisseurs, généralement vous appuyez sur /et entrez le mot-clé. Avec nvous passez à l'occurrence suivante. Cela fera apparaître les éléments suivants:
[..]
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'option peut être désactivée à l'aide de unsetopt AUTO_CD
.
Désactiver correctement
Vous utilisez oh-my-zsh qui est décrit comme
"Un framework communautaire pour gérer votre configuration zsh" Comprend plus de 120 plugins optionnels (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), ...
Donc, la prochaine chose est de savoir comment activer / désactiver les options en fonction du cadre.
Le fichier readme.textile indique que la manière préférée d'activer / désactiver les plugins serait une entrée dans votre .zshrc: plugins=(git osx ruby)
Découvrez quel plugin utilise l'option AUTO_CD. Comme découvert dans la page de manuel, il peut être appelé via le commutateur -J ou AUTO_CD. Puisque oh-my-zsh est disponible sur github, sa recherche fera apparaître le fichier lib/theme-and-appearance.zsh
. Si vous ne voulez pas désactiver l'intégralité du plugin "thème et apparence", mettez un unsetopt AUTO_CD
dans votre .zshrc. Ne modifiez pas directement les fichiers de oh-my-zsh, car si vous mettez à jour le framework, vos modifications seront perdues.
Pourquoi les exécutables ne sont pas appelés directement
Votre troisième question est de savoir comment exécuter un binaire directement: vous devez exécuter votre fichier binaire via un chemin, par exemple avec un préfixe ./
comme dans ./do-something
. Il s'agit d'une sorte de fonction de sécurité qui ne doit pas être modifiée. comment brancher une clé USB, la monter et la regarder avec ls
. S'il y a un exécutable appelé ls
qui supprime votre répertoire personnel, tout serait parti, car cela aurait écrasé l'ordre de votre $ PATH.
Si vous avez des commandes que vous appelez à plusieurs reprises, la configuration d'un alias dans votre .zshrc serait une solution courante.
unsetopt auto_cd
ligne (j'ai mentionné explicitement que l'exécutable est sur mon chemin; néanmoins, l'explication pourrait aider d'autres utilisateurs à comprendre les choses).PATH
variable d'environnement qu'ils veulent avoir la priorité sur autocd. Cela n'a rien à voir avec l'incapacité du script shell à exécuter un exécutable à partir d'un chemin sans spécifier ni l'un./
ni l' autre/
.lib
répertoire OMZ n'a rien àplugins
voir avec .En ce qui concerne la question et comme vous l'avez dit, la commande correcte estunsetopt
.