/ / Zsh bookmark adresárov s dokončením karty? - zsh, zshrc, zsh-dokončenie

Zsh bookmark adresáre s dokončením karty? - zsh, zshrc, zsh-dokončenie

Čo chcem:

cd c/ra<tab> dokončí sa ~/code/rails-app a cd c/<tab> zobrazí zoznam dirs v rámci ~/code


Čo v súčasnosti majú:

c ra<tab> dokončí sa c rails-app ak mám adresár ~/code/rails-app a c <tab> zobrazí zoznam dirs v rámci ~/code

Tým, že to má v mojom .zshrc:

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


Tento nástroj vyzerá sľubne: https://github.com/flavio/jump ale ja by som rád niečo ľahšie.

odpovede:

1 pre odpoveď č. 1

Tab dokončenie, ako ste "opísal, aspoň pre adresáre, mali by byť vykonateľné zsh bez nutnosti písať zsh Funkcie.

Tento odkaz, napríklad, poznamenáva, že písanie /u/l/b potom pútko rozširuje na /usr/local/bin na výzvu.

Toto funguje pre mňa - ak si vytvorím adresár ~/code/rails-app napríklad:

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

potom:

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

Nemôžem poukázať na to, čo zsh možnosť je to - používam pomerne silne upravené ~/.zshrc a bitov oh-my-zsh, toto sila byť funkčnosť daná zsh bez toho, aby bolo potrebné povoliť; ak nie, podrobnosti v prvom prepojení alebo niekde inde oh-my-zsh alebo dokonca niektoré verzie manuálu ZSH by malo pomôcť. (Príručku nájdem trochu ... ohromujúci, aspoň povedzme).

Nemyslím si, že musíte napísať funkciu, aby ste dosiahli toto správanie - zsh je to určite schopný.