Shell

如何使用 oh-my-zsh 在 zsh 中禁用“自動 cd”

  • April 27, 2020

Google搜尋沒有顯示任何結果。這就是我的意思:我有一個x在我的路徑中命名的二進製文件(不是目前文件夾,但它在 中PATH),並且在目前工作目錄中還有一個同名的文件夾。如果我鍵入x,我希望執行二進製文件,但它會 cd 進入該文件夾。我該如何解決?

那是三個問題合二為一;-)

AUTO_CD 選項以及如何找到它

首先,您正在尋找的選項是 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.
[..]

可以使用取消設置該選項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 中設置別名將是一種常見的解決方案。

引用自:https://unix.stackexchange.com/questions/126719