/ / Zsh Lesezeichen Verzeichnisse mit Tab-Vervollständigung? - zsh, zshrc, zsh-Vervollständigung

Zsh Lesezeichen Verzeichnisse mit Tab-Abschluss? - zsh, zshrc, zsh-Vervollständigung

Was ich möchte:

cd c/ra<tab> schließt zu ab ~/code/rails-app und cd c/<tab> Zeigt eine Liste von Verzeichnissen an ~/code


Was ich momentan habe:

c ra<tab> schließt zu ab c rails-app wenn ich ein Verzeichnis habe ~/code/rails-app und c <tab> Zeigt eine Liste von Verzeichnissen an ~/code

Indem ich das in meiner Hand habe .zshrc:

c() { cd ~/code/$1; }
_c() { _files -W ~/code -/; }
compdef _c c


Dieses Tool sieht vielversprechend aus: https://github.com/flavio/jump aber ich hätte gerne etwas leichteres.

Antworten:

1 für die Antwort № 1

Tab-Vervollständigungen, wie Sie sie zumindest für Verzeichnisse beschrieben haben, sollten machbar sein zsh ohne die Notwendigkeit, ein zu schreiben zsh Funktion.

Dieser Linkbemerkt zum Beispiel das Tippen /u/l/b dann Tab expandiert nach /usr/local/bin auf die Aufforderung.

Das funktioniert für mich - wenn ich ein Verzeichnis mache ~/code/rails-app eine solche:

zsh% ls ~/code
another-app       another-dir rails-app
zsh% ls ~/code/rails-app
one two

dann:

zsh% cd c/ra<TAB> # this expands to "cd code/rails-app"
zsh% cd c/<TAB><TAB> # Double tab, one to expand "c" to "code",
zsh% #               # second gives me the zsh-completion menu

Ich kann nicht darauf hinweisen, was zsh option this is - ich benutze eine ziemlich stark modifizierte ~/.zshrc und Bits von oh-my-zsh. Dies Macht Funktionalität ist gegeben durch zsh ohne aktiviert zu werden; wenn nicht, Details entweder in der ersten Verbindung oder irgendwo in oh-my-zsh oder auch einige Version des ZSH-Handbuchs sollte helfen. (Ich finde das Handbuch ein wenig ... überwältigend, um es gelinde auszudrücken).

Ich glaube nicht, dass Sie eine Funktion schreiben müssen, um dieses Verhalten zu erreichen - zsh ist definitiv dazu in der Lage.