2015-09-11 52 views
3

我嘗試在OS X 外殼,想知道是否有同類的路徑替換功能,因爲我相信這是在巖組,即魚殼中是否有類似Zsh的路徑替換?

[email protected] ~> % cd /usr/www/site1/current/log 
[email protected] /usr/www/site1/current/log 
%> cd site1 site2 
/usr/www/site2/current/log 
[email protected] /usr/www/site2/current/log 
%> 

的例子是採取 - 和定製 - 從SlideShare Why Zsh is Cooler than Your Shell

我試過在Fish中,但它似乎不起作用,至少使用相同的語法。我還沒有在Fish文檔中找到任何「路徑替換」的東西。

+1

你會發現魚對顏色和標籤填充非常好,但它沒有很多這樣的功能:http://fishshell.com/docs/current/design.html –

回答

5

顯然Fish不支持開箱即用的路徑替換。

我通過創建~/.config/fish/functions一個簡單的自定義函數調用cd.fish解決了這個問題:

function cd 
    if test (count $argv) -eq 2 
      builtin cd (echo $PWD|sed -e "s/$argv[1]/$argv[2]/") 
    else 
      builtin cd $argv 
    end 
end 

這可能是不完美的人誰是用來巖組,但沒有使問題工作的例子。

注意:Fish已經有自己的cd函數版本,所以最好將這個Fish的開箱即用版本完全替換掉。這只是一個清晰的例子。