2017-07-17 62 views
0

我最近切換到魚殼,並想知道它是否可以在zsh中自動完成文件路徑而不指定它的父目錄。對於foo/bar/file.ext中的文件,在zsh中,我可以輸入open .///file <TAB>和自動完成到open ./foo/bar/file.ext(假設沒有其他名稱相同的文件或目錄位於同一級別)。當我在魚類中執行相同的操作時,自動完成功能找不到該文件。有沒有辦法在魚類中啓用此功能?魚自動完成文件路徑沒有指定目錄結構

+1

'./*/*/file '聲音怎麼樣? –

回答

1

與zsh不一樣。魚有一個特殊的** glob遞歸到目錄中。自動完成邏輯可以識別並處理它。所以你可以做open **/file[tab],它會爲你提供可供選擇的匹配文件。但是,它實際上並沒有在命令行上擴展**,結果有些不明確。我們有一個公開的問題,https://github.com/fish-shell/fish-shell/issues/751,實施一種方法來明確地要求在運行命令之前擴展變量和球。

+0

我明白了。計劃在未來模仿zsh?我發現'open **/file '比zsh慢得多。隨着我更多地使用shell,自動完成會變得更快嗎? – Chris

+0

作爲一般規則,魚羣不會添加可配置的行爲。殼應該「只是工作」。如果有人提出明顯優越的新行爲建議,我們願意改變現有行爲,並且這種改變不會讓習慣於現有行爲的極少數用戶煩惱。請打開一個問題:https://github.com/fish-shell/fish-shell/issues/new。使用'**'遞歸完成文件首次緩慢,因爲操作系統可能需要從磁盤讀取大量數據。 –