2012-02-17 8 views
0

Что я хочу:ZST закладки каталогов с закладкой завершение?

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

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

This link, например, отмечает, что набрав /u/l/b затем вкладку расширяется до /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 или даже some version of the ZSH manual должна помочь. (Я считаю, что руководство немного ... подавляющее, если не сказать больше, хотя).

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

+0

Я решил использовать fasd https://github.com/clvv/fasd, что является другим способом решения моей проблемы. Но, спасибо, у вашего совершенно правильного автозаполнения Zsh есть большинство функций, которые я запрашивал. –

 Смежные вопросы

  • Нет связанных вопросов^_^