Gab*_*aru 43 shell zsh oh-my-zsh
谷歌搜索这个没有显示任何结果。这就是我的意思:x我的路径中有一个二进制文件(不是当前文件夹,但它在 中PATH),还有一个在当前工作目录中具有相同名称的文件夹。如果我输入x,我希望二进制文件被执行,而是将它 cd 放入该文件夹中。我该如何解决?
ech*_*hox 65
这是三个问题合二为一;-)
首先,您正在寻找的选项是 AUTO_CD。您可以通过查找轻松找到它man zshoptions。使用您的寻呼机搜索功能,通常您按下/并输入关键字。随着n你跳到下一个事件。这将带来以下内容:
[..]
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.
[..]
Run Code Online (Sandbox Code Playgroud)
可以使用 取消设置该选项unsetopt AUTO_CD。
您正在使用 oh-my-zsh,其描述为
“用于管理 zsh 配置的社区驱动框架”包括 120 多个可选插件(rails、git、OSX、hub、capistrano、brew、ant、macports 等),...
所以接下来要做的是找出如何根据框架启用/禁用选项。
该readme.textile文件指出的首选方法来启用/禁用插件会在你的.zshrc中的条目:plugins=(git osx ruby)
找出哪些插件使用AUTO_CD选项。正如从联机帮助页中发现的那样,它可以通过 -J 开关或 AUTO_CD 调用。由于 oh-my-zsh 在 github 上可用,搜索它会打开文件lib/theme-and-appearance.zsh. 如果您不想禁用整个插件“主题和外观”,请unsetopt AUTO_CD在您的 .zshrc 中放入一个。不要直接修改 oh-my-zsh 的文件,因为如果您更新框架,您的更改将丢失。
您的第三个问题是如何直接执行二进制文件:您必须通过路径执行二进制文件,例如以./in为前缀./do-something。这是某种安全功能,不应更改。插入 USB 记忆棒,安装它并使用ls. 如果有一个可执行文件ls会删除您的主目录,那么一切都会消失,因为这会覆盖 $PATH 的顺序。
如果您有重复调用的命令,在 .zshrc 中设置别名将是一个常见的解决方案。