[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

ещё раз про completion в zsh



Всем привет.

Хочется двух вещей:
когда я нажимаю на таб:
если есть что дописать --- то дописать и показать возможные варианты.
если дописать нечего --- показать возможные варианты.
если дописать нечего и список уже показан --- включить menu-select.

показывать возможные варианты после первого нажатия на TAB делается при помощи setopt no_list_ambiguous
дальше сложнее.


была попытка написать вот так, это не то, что хотелось бы..
(по первому нажатию на таб --- делается expand-or-complete-prefix
по второму -- включается menu-select)
( это не то потому, что если что-нить подредактировать после нажатия на таб -- следующее нажатие на таб будет делать menu-select а не дополнять)
более того, в этом месте zsh сигфолтится.

% ls
asdf  asdlkjg
% ls             # ls жмём <tab>
% ls asd # дописываем l и жмём таб. хотелось бы что бы вызывалсяexpand-or-complete-prefix но вызывается
menu-select и zsh падает

foo(){
        _main_complete;
        bindkey '\t' my-menu-select
}
zle -C my-expand-or-complete-prefix .expand-or-complete-prefix foo
bindkey '\t' my-expand-or-complete-prefix

zle -N my-menu-select
my-menu-select(){
        zle menu-select;
        bindkey '\t' my-expand-or-complete-prefix
}

ПОМОГИИТЕ..
хотя я так понимаю, здесь только один человек может давать ответы про zsh

--
sergio.



Reply to: