zshell: настройка автодополнения

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

gtlinuxman
Сообщения: 184
ОС: Gentoo 2006.0

zshell: настройка автодополнения

Сообщение gtlinuxman »

Возможно ли, и если возможно, то как настроить zsh следующим образом.
Автодополнение по мере набора в форме меню. БЕЗ нажатия TAB.
То есть чтоб zsh автоматически в процессе набора предлагал варианты завершения комманды (имени файла.директории) или список доступных опций оформленных в виде меню. А если есть только один вариант завершения, то он должен автоматически подставляться. Подстановки первого подходящего варианта при существовании других, быть не должно.

Понимаете ли, zsh поставил в надежде на избавление от постоянного табулирования, иначе он для меня не будет эффективней bash'a. Но в доступной моему пониманию литературе описываются только различные виды автодополнения по TAB'у :(

Про раскрытие сокращённого набора по TAB´у ( ls /u/sh/doc/ [TAB] => ls /usr/share/doc/ ) читал, но это абсолютно не то, что нужно.
Open Source
Создавать и воспитывать [сущее]; создавая, не обладать [тем, что создано];
приводя в движение, не прилагать к этому усилий; руководя, не считать себя
властелином – вот что называется глубочайшим дэ.
"Дао Дэ Цзин" && Gentoo 2005.1
Спасибо сказали:
Аватара пользователя
Kain666
Сообщения: 131
ОС: Archlinux

Re: zshell: настройка автодополнения

Сообщение Kain666 »

хм, попробуй например вот это:

Код: Выделить всё

zle -N predict-on
zle -N predict-off
bindkey "^X^Z" predict-on # C-x C-z
bindkey "^Z" predict-off # C-z
Archlinux <strike>ion3</strike>xmonad urxvt ncmpcpp emacs screen <strike>gajim</strike>qutim rtorrent
Спасибо сказали:
gtlinuxman
Сообщения: 184
ОС: Gentoo 2006.0

Re: zshell: настройка автодополнения

Сообщение gtlinuxman »

во первых он ищет подстановки только по истории, а не по путям и опциям.
во вторых вначале надо "autoload -U predict-on" ;)

Короче, уже теплей, но все равно пока не то.

Может быть можно как-то сделать так, чтоб он на каждую цифробуквенную клавишу реагировал в том числе как на TAB ?
Open Source
Создавать и воспитывать [сущее]; создавая, не обладать [тем, что создано];
приводя в движение, не прилагать к этому усилий; руководя, не считать себя
властелином – вот что называется глубочайшим дэ.
"Дао Дэ Цзин" && Gentoo 2005.1
Спасибо сказали:
Аватара пользователя
Kain666
Сообщения: 131
ОС: Archlinux

Re: zshell: настройка автодополнения

Сообщение Kain666 »

во первых он ищет подстановки только по истории, а не по путям и опциям.

Хм, у меня и по путям и по опциям ищет.
во вторых вначале надо "autoload -U predict-on"

извини забыл :blush:

ps:прикладываю свой zcompletion
добавь в zshrc нечто подобное:

Код: Выделить всё

ZFCROOT="${HOME}/.zsh"
ZFC_COMPLETION="${ZFCROOT}/zcompletion"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Archlinux <strike>ion3</strike>xmonad urxvt ncmpcpp emacs screen <strike>gajim</strike>qutim rtorrent
Спасибо сказали:
gtlinuxman
Сообщения: 184
ОС: Gentoo 2006.0

Re: zshell: настройка автодополнения

Сообщение gtlinuxman »

Ура! Ура!
ОН РАБОТАЕТ!!!!!
почти так как нужно.

Kain666! спасибо!!! и за конфиг особенно, он более чем познавательный :)

Есть ещё два вопроса.

1) Как сделать так, чтобы predict по умолчанию был включен?
2) Когда меню не используется, то при нажатии TAB выводится список, допустим файлов/комманд. Так вот, как сделать, чтобы список выводился через more (как в баше)?
Open Source
Создавать и воспитывать [сущее]; создавая, не обладать [тем, что создано];
приводя в движение, не прилагать к этому усилий; руководя, не считать себя
властелином – вот что называется глубочайшим дэ.
"Дао Дэ Цзин" && Gentoo 2005.1
Спасибо сказали:
Аватара пользователя
Kain666
Сообщения: 131
ОС: Archlinux

Re: zshell: настройка автодополнения

Сообщение Kain666 »

Kain666! спасибо!!! и за конфиг особенно, он более чем познавательный

Нз ; )
Покопайся в конфиге, может еще что интересного найдешь.
По поводу вывода через more, никогда об этом не задумывался, мне удобней когда все по категориям. Поищи в гугле может чего и найдешь.
ps: и сходи на dotfiles, там тоже много чего интересног можно найти.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Archlinux <strike>ion3</strike>xmonad urxvt ncmpcpp emacs screen <strike>gajim</strike>qutim rtorrent
Спасибо сказали:
gtlinuxman
Сообщения: 184
ОС: Gentoo 2006.0

Re: zshell: настройка автодополнения

Сообщение gtlinuxman »

чтобы predict по умолчанию был включен можно дописать

Код: Выделить всё

zle-line-init() { predict-on }
zle -N zle-line-init
Но при этом курсор становится на следующую строчку пока не начнётся набор. ИМХО выглядит сие некузяво.
Open Source
Создавать и воспитывать [сущее]; создавая, не обладать [тем, что создано];
приводя в движение, не прилагать к этому усилий; руководя, не считать себя
властелином – вот что называется глубочайшим дэ.
"Дао Дэ Цзин" && Gentoo 2005.1
Спасибо сказали:
gtlinuxman
Сообщения: 184
ОС: Gentoo 2006.0

Re: zshell: настройка автодополнения

Сообщение gtlinuxman »

А как отрегулировать predict, чтобы он не дополнял по истории (лишнее) и ошибки автоматически не корректировало (жуть)
пробовал набрать такой спелл:

Код: Выделить всё

zstyle ':completion:predict:*' completer _complete

реакции - ноль
Open Source
Создавать и воспитывать [сущее]; создавая, не обладать [тем, что создано];
приводя в движение, не прилагать к этому усилий; руководя, не считать себя
властелином – вот что называется глубочайшим дэ.
"Дао Дэ Цзин" && Gentoo 2005.1
Спасибо сказали:
Mellon
Сообщения: 655
Статус: Powered by Gentoo
ОС: Gentoo

Re: zshell: настройка автодополнения

Сообщение Mellon »

Посмотри не заданы ли стили ранее в более строгом виде.
У меня в конфиге было такое:

Код: Выделить всё

# list of completers to use
zstyle ':completion:*::::' completer _expand _complete _ignored _approximate

Поправил и дополнил до

Код: Выделить всё

zstyle ':completion:*' completer _expand _complete _ignored _approximate
zstyle ':completion:predict:*' completer _complete


А на счёт запрета дополнения из истории - самому интересно :)
Некоммерческий файлообмен не может сравниваться с кражей, так как кража лишает кого-то возможности использовать украденный объект. ©
--------------------
Переворачиватель пингвинов
Спасибо сказали: