2009-07-14 19 views
2

Sorry, wenn mein Google-Fu zu schwach ist, aber: ich einfach zsh anpassen möchten, so dass ich kann Tab kompletteProgrammierung angepasst Tabulatorvervollständigung für zsh

someappname -s 

den Inhalt (Dateinamen) von ~/somedir mit

zum Beispiel:

someapp -s f<tab> 

fahre durch die basierten Ergänzungen zu den Dateien, die mit dem Buchstaben f in ~/somedir starten. So könnte ich mit einer Befehlszeile enden wie: "someapp -s foobar".

Antwort

2

Nun, ich arbeitete this out: (source at github)

#compdef diakonos 

typeset -A opt_args 
local context state line 
local sessiondir 
sessiondir=${HOME}/.diakonos/sessions 

_arguments -n -s -S \ 
    "-s[specify session]:session:_files -W $sessiondir" \ 
    "*:file:_files" \ 
    && return 0 

return 1 

I verwiesen http://www.linux-mag.com/id/1106 ([kostenlos] Anmeldung lesen erforderlich), und bekam Hilfe von #zsh auf freenode.

+2

Sie könnten auch das Buch _From Bash bis Z Shell_ von Oliver Kiddle, Jerry Peek und Peter Stephenson überprüfen. – Telemachus

5

Ein einfacher Ansatz:

compdef "_files -W ~/somedir -/" someappname 
+2

Wenn 'someappname' nur Verzeichnisse als Argumente verwendet, können Sie' _directories' anstelle von '_files' verwenden. – Manki