2012-08-17 124 views
2

的標籤完成第一場比賽的文件名中有三個文件a.pdf,b.pdf,C.PDF,我想使用的zsh作爲剛剛擴大的zsh

xpdf *.pdf<tab> 
# zsh will expand like 
xpdf a.pdf b.pdf c.pdf 
# I wish 
xpdf a.pdf 
b.pdf c.pdf #<-- more other option could be select 
  1. 祝<標籤>可以顯示一個菜單讓我選擇其中一個文件。
  2. 如何解開'a.pdf b.pdf c.pdf'爲'* .pdf',任何熱鍵?

如果不是的xpdf,只是ls -l命令,如何讓我選擇一個PDF文件中ls -l命令的* .pdf

+2

我認爲你做錯了。 'zsh'知道在完成'xpdf'時完成pdf文件,所以'xpdf '應該這樣做。如果您始終想要完成菜單,請使用此樣式:'zstyle':完成:*'菜單選擇'。參見'zshcompsys(1)'並搜索'select = num'來查找相關的手冊章節。 – Thor 2012-08-17 09:18:24

+2

Zsh接受emacs快捷鍵:「撤消」,「Ctrl + x,u」。它會從'a.pdf b.pdf c.pdf'展開爲'* .pdf',就像在按Tab之前一樣。 – lolesque 2012-08-17 14:30:55

回答

0

如果您已經安裝zsh-completions,這應該已經開箱即用。 ZSH有一些聰明的完成例程,它們知道什麼類型的文件擴展名應該是某些程序的標籤完整候選項。

你當然可以使用zshcompctl來定製這些,但是你用xpdf使用的例子應該已經爲你設置了。這在環境沒有安裝默認的補全手動規則是這樣的:

compctl -g "*.pdf" xpdf 

這條線在.zshrc配置文件將PDF文件新竣工模式添加到xpdf的命令。

+0

在我的.zshrc「autoload -Uz compinit」,「compinit」,我試過了你的方法,它顯示三個pdf而不是一個pdf文件。 – 2012-08-18 14:50:51