Frage

Was ich möchte:

cd c/ra<tab> abgeschlossen zu ~/code/rails-app und cd c/<tab> Zeigt eine Liste von Diren innerhalb ~/code


Was ich derzeit habe:

c ra<tab> abgeschlossen zu c rails-app Wenn ich ein Verzeichnis habe ~/code/rails-app und c <tab> Zeigt eine Liste von Diren innerhalb ~/code

Indem Sie dies in meinem haben .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 Leichtes.

War es hilfreich?

Lösung

Die Registerkartenabschluss, wie Sie es zumindest für Verzeichnisse beschrieben haben, sollte durch machbar sein durch zsh ohne die Notwendigkeit, a zu schreiben zsh Funktion.

Dieser Link, stellt beispielsweise fest, dass das Tippen /u/l/b dann Tab erweitert zu /usr/local/bin Auf der Eingabeaufforderung.

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, welche zsh Option Dies ist - ich verwende einen ziemlich stark modifizierten ~/.zshrc und Teile von oh-my-zsh. Dies könnte Funktionalität sein durch zsh ohne aktiviert werden zu müssen; Wenn nicht, Details im ersten Link oder irgendwo in oh-my-zsh oder auch Eine Version des ZSH -Handbuchs sollte helfen. (Ich finde das Handbuch ein wenig ... überwältigend, aber gelinde gesagt).

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top