2013-03-18 144 views
2

是否有一個zsh腳本可以讓我用反斜槓自動完成空格? 例如:zsh中的自動完成反斜槓

假設有一個名爲「我的文件夾」的文件夾,其間有空格。 如果我要進去,我

cd My\ folder 

不過,我想辦法型

cd My folder 

和zsh的自然就知道把一個反斜槓,所以我不就得了。

+1

假設您有三個文件夾:「我的」,「文件夾」和「我的文件夾」。 'zsh'如何知道該空間是字面分隔符還是字面字符? – chepner 2013-03-18 17:28:53

+0

你只能cd到一個目錄,所以zsh將不得不假設我想把這個空間作爲單詞分隔符,因此我想進入'我的文件夾' – user2183384 2013-03-18 18:03:51

+0

'zsh'支持'cd的雙參數版本',其中第二個參數替換當前目錄名稱中的第一個參數。我舉了一個不好的例子,但是關於'zsh'應該如何解釋這個空間還有一點含糊不清。 – chepner 2013-03-18 18:11:42

回答

0

您可以使用「Myfolder」製作別名,然後在zsh腳本中運行該別名。

alias -g "Myfolder"="My\ folder" ---> cd Myfolder 

我不知道是否有一種方法可以使人們有可能具有在字與字之間的空間。如果它必須是我的「我的文件夾」,那麼我不知道我可以幫你。

0

答案有點晚,但是這應該允許你做你想要做的事情,並且保留cd命令的正常行爲,並且如果沒有目錄是你的話也帶你到~目錄給出。

添加到您的~/.zshrc文件:

function cd() { 
    new_directory="$*"; 
    if [ $# -eq 0 ]; then 
     new_directory=${HOME}; 
    fi; 
    builtin cd "${new_directory}" 
} 

但是你ZSH應該有自動完成內置的,在這種情況下,你可以輸入你想用cd命令進入目錄的前幾個字母,然後打選項卡並且它應該完成目錄名稱或在多個匹配項目時提供目錄列表。