Eso es tres preguntas en una ;-)
Opción AUTO_CD y cómo encontrarla
En primer lugar, la opción que está buscando es AUTO_CD. Puede encontrarlo fácilmente mirando hacia arriba man zshoptions
. Use la función de búsqueda de buscapersonas, generalmente presiona /e ingresa la palabra clave. Con nusted salta a la próxima aparición. Esto mostrará lo siguiente:
[..]
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.
[..]
La opción se puede deshabilitar usando unsetopt AUTO_CD
.
Apagándolo correctamente
Estás utilizando oh-my-zsh, que se describe como
"Un marco basado en la comunidad para administrar su configuración de zsh" Incluye más de 120 complementos opcionales (rails, git, OSX, hub, capistrano, brew, ant, macports, etc.), ...
Entonces, lo siguiente es averiguar cómo habilitar / deshabilitar las opciones de acuerdo con el marco.
El archivo readme.textile indica que la forma preferida de habilitar / deshabilitar complementos sería una entrada en su .zshrc: plugins=(git osx ruby)
descubra qué complemento usa la opción AUTO_CD. Como se descubrió en la página de manual, se puede invocar a través del modificador -J o AUTO_CD. Como oh-my-zsh está disponible en github, al buscarlo aparecerá el archivo lib/theme-and-appearance.zsh
. Si no desea deshabilitar todo el complemento "tema y apariencia", coloque un unsetopt AUTO_CD
archivo en su .zshrc. No modifique los archivos de oh-my-zsh directamente, porque en caso de que esté actualizando el marco, sus cambios se perderán.
Por qué los ejecutables no se invocan directamente
Su tercera pregunta es cómo ejecutar un binario directamente: debe ejecutar su archivo binario a través de una ruta, por ejemplo con un prefijo ./
como en ./do-something
. Esta es una especie de característica de seguridad y no se debe cambiar. La idea de enchufar un dispositivo USB, montarlo y echarle un vistazo ls
. Si hay un ejecutable llamado ls
que elimina su directorio de inicio, todo desaparecería, ya que esto habría sobrescrito el orden de su $ PATH.
Si tiene comandos que llama repetidamente, configurar un alias en su .zshrc sería una solución común.
unsetopt auto_cd
línea (sin embargo, mencioné explícitamente que el ejecutable está en mi camino; sin embargo, la explicación podría ayudar a otros usuarios a resolver las cosas).PATH
variable de entorno que quieren tener prioridad sobre autocd. No tiene nada que ver con la incapacidad del script de shell para ejecutar un ejecutable desde una ruta sin especificar ninguno./
o/
.lib
directorio OMZ no tiene nada que hacer con.plugins
En cuanto a la pregunta y, como dijiste, el comando correcto esunsetopt
.