Ich habe ein Verzeichnis, in das ich alle meine Projekte einfügte. Nehmen wir an, es ist ~/projectsein Beispiel. Ich habe einen Befehl gemacht, sder ein Argument enthält und mich in dieses Verzeichnis verschiebt. ZB: s foobewegt mich zu ~/projects/foo.
Was ich gerne hätte, wäre ein gewisser Abschlussbefehl, der so wirken würde, cddass ich weiter versuchen könnte tab, weiter in die ~/projects/...Verzeichnisse zu gehen .
Grundsätzlich cdmit einem Vorsatz, der immer vorhanden ist.
Ich habe in Zstyle Completion nachgesehen man zshcompsys, erkannte aber, dass ich nicht genug davon weiß, um es richtig zu verstehen.
Hier ist ein Beispiel von mir.zshrc, das ich als Copy / Paste-Snippet verwende:
# Try using the below template to set up zsh functions that act # as aliases to cd and allow you to get autocomplete nicely. project() { cd /path/to/project/$1; } compctl -W /path/to/project/ -/ project
Bearbeiten Sie einfach den /path/to/projectAbschnitt in beiden Zeilen, dann können Sie loslegen.
Das funktioniert super, danke! Viel einfacher als ich gedacht hätte.
nifty vor 12 Jahren
0
2
Gilles
Eine andere Möglichkeit, einen ähnlichen Effekt zu erzielen, besteht darin, Aliase für Verzeichnisse zu definieren:
setopt auto_cd alias -d s=~/projects
Typ ~s/Tab, um in ein Unterverzeichnis von zu wechseln ~/projects; Sie können auch ~sin einem Befehlsargument verwenden.
1
wjv
Sie können einen Eintrag direkt zur benannten Verzeichnis-Hash-Tabelle hinzufügen:
hash -d s="$/projects"
Jetzt können Sie einfach ~sauf Ihr Verzeichnis verweisen und Tab-Vervollständigung in einem cdBefehl verwenden: cd ~ s /Tab
Wenn Sie die autocdOption zsh eingestellt haben, können Sie die Option weglassen cd.
Now you can access all subdirectories within the specified directories from every other directory as if they would be the subdirectories of the current directory: