2014-05-01 147 views
2

我在~/.zshrc以下別名:Zsh:智能自動完成功能?

~ which pulseaudio-restart 
pulseaudio-restart: aliased to killall pulseaudio && pulseaudio --start 

是否有可能在某種程度上配置巖組擊鍵restart將輸出我pulseaudio-restart的建議,因爲它包含字符串restart

目前,打字restart只帶來了:

~ rest 
restart  restore-trash 
+0

你爲什麼不把別名命名爲restart-pulseaudio?由於您正在使用製表符完成,因此不會出現別名的確切名稱。 – chepner

+0

好點。但是,對於我來說,記住'pulseaudio-restart'會更容易,因爲我知道我正在尋找與'pulseaudio'相關的命令。 – orschiro

回答

2

是的,它是可能的。爲此,您必須設置/修改完成模塊的matcher-list樣式。這可以用下面的命令來完成:

zstyle ':completion:*' matcher-list 'l:|=* r:|=*' 

這告訴完成查找完成左側以及上所打的詞的右邊(具體可在zshcompwid(1)找到)。

由於名稱matcher-list表示可能有多個匹配規範,在這種情況下,重要的是'l:|=* r:|=*'是第一個。規範按照它們出現的順序進行嘗試,直到返回匹配。


對於oh-my-zshmatcher-listlib/completion.zsh設置,它已經包含了需要規範,但只能作爲最後的選擇。您可以在oh-my-zsh加載後更改訂單或在~/.zshrc中添加自己的設置。

+0

非常好的解決方案!儘管我使用'oh-my-zsh',我只是在'〜/ .zshrc'的底部添加了'zstyle':completion:*'matcher-list'l:| = * r:| = *''它完美的工作! – orschiro