ZSH -Lesezeichenverzeichnisse mit Registerkartenabschluss?
-
27-10-2019 - |
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.
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.