Zsh закладки каталогов с завершением вкладки? - PullRequest
1 голос
/ 17 февраля 2012

Что я хочу:

cd c/ra<tab> завершается до ~/code/rails-app, а cd c/<tab> показывает список папок в ~/code


ЧтоВ настоящее время у меня есть:

c ra<tab> завершается до c rails-app, если у меня есть каталог ~/code/rails-app и c <tab> показывает список папок в ~/code

Имея это в моем.zshrc:

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


Этот инструмент выглядит многообещающе: https://github.com/flavio/jump но я бы хотел что-нибудь более легкое.

1 Ответ

2 голосов
/ 17 мая 2012

Заполнение табуляции, как вы описали, по крайней мере для каталогов, должно быть выполнимо zsh без необходимости писать функцию zsh.

Эта ссылка , например, отмечает, что при наборе /u/l/b затем tab в приглашении открывается /usr/local/bin.

Это работает для меня - если я сделаю каталог ~/code/rails-app такой:

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

, то:

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

Я не могу указать, какой вариант zsh это - я использую довольно сильно модифицированный ~/.zshrc и биты oh-my-zsh. Это может быть функциональностью, предоставленной zsh без необходимости включения; если нет, то подробности в первой ссылке или где-то в oh-my-zsh или даже в какой-то версии руководства по ZSH должны помочь. (Я считаю руководство немного ... подавляющим, если не сказать больше).

Я не верю, что вам нужно написать функцию для достижения такого поведения - zsh определенно может это сделать.

...