FreeSource : AltLinux/DotFiles/Shells/zsh/MenuSelection

Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.

Меню в zsh, или Хана mc 


raorn@ нагуглил по просьбе vyt@ рецепт прикручивания к дополнению в zsh меню:

> Добавил в ~/.zshrc
zmodload zsh/complist
setopt menucomplete
zstyle ':completion:*' menu yes select


Письмо:

Date: Mon, 11 Jul 2005 14:09:41 +0400
From: "Alexey I. Froloff" <raorn@>
To: ALT Linux Community <community@>
Subject: Re: [Comm] [SUMMARY] zsh: coloured menu selection

* Vitaly Ostanin <vyt@> [050708 18:05]:
> Пытаюсь получить выбор вариантов автодополнения в zsh в виде меню
> с подсветкой текущего варианта. Возможность такая в zsh вроде бы
> есть:
> http://zsh.sunsite.dk/Doc/Release/zsh_21.html#SEC146
Там есть такой апзац:

When using the completion system based on shell functions, the ( Ну прям как у нас --raorn)
MENUSELECT parameter should not be used (like the ZLS_COLORS and ZLS_COLOURS parameters described above). 
Instead, the menu style should be used with the select=... keyword.

> Попробовал завести своими силами – чувствую, уже едет...
> Кто-нибудь осилил? 
Осилил.

Погуглил по "zsh menu selection example", нашёл:

http://grml.org/zsh/zsh-lovers.html

> Добавил в ~/.zshrc

zmodload zsh/complist
setopt menucomplete
zstyle ':completion:*' menu yes select

> в автодополнении ничего не изменилось.
mc ненужен.

— 
Regards, Sir Raorn.

и далее про раскраску, опять raorn@ со своим сверхтяжёлым в гуглинге:

* Vitaly Ostanin <vyt@> [050711 14:31]:
> А так всё классно, mc действительно отдыхает :) Пойду цвета   
> настраивать :) Спасибо!
Опять info zsh, рассказ про стандартные стили:

list-colors
     If the zsh/complist module is loaded, this style can be used to set
     color specifications.  This mechanism replaces the use of the
     ZLS_COLORS and ZLS_COLOURS parameters described in *Note The zsh/complist Module::,
     but the syntax is the same....

     It is possible to use any color specifications already set up for
     the GNU version of the ls command:

          zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

     The default colors are the same as for the GNU ls command and can
     be obtained by setting the style to an empty string (i.e. '').

Самое сложное в чтении доков (которые как известно источник
знаний) это найти где конкретно в этой доке находится источник
тех знаний, которые нужны в данный момент...


From: Vitaly Ostanin <vyt@>

> А у меня enter не заработал.

Чтоб я делал без гугля:   

bindkey -M menuselect "^M" .accept-line

Это заклинание при нажатии в меню Enter сразу принимает вариант.
Например, при переходе в каталог не надо жать Enter дважды.


Отсебятина от raorn@ (от'raorn'ятина):

Автодополнение для kill показывает очень мало:



То же самое для killall. Почему-то по умолчанию processes-names вызывает ps ho command для пользователя и ps xaho command для root. Добавим себе x:



Например cd. cd <Tab>, выбрали каталог, хотим выбрать следующий, уровнем ниже (рекомендуется для использования совместно с описаным vyt@ "^M" .accept-line):



Ходим по меню, выделяем об'екты пробелом:



Автодополнение хостов для ssh/scp (кажется icct на #debian-russian поделился, я зопатчил):



(Тут между процентами стоят пробелы только для wakowiki!!!)
Тут только ssh/scp берут хосты из ~/.ssh/known_hosts, все остальные ходят по умолчанию.

Другой (более кошерный) способ автодополнения хостов описан здесь.

Чтоб юзеров локальных не пыталось подставлять (raorn@):



Научить menuselect понимать PgUp/PgDown:



Однако этот способ не заработал, пока я не прописал такие же биндинги в основной раскладке (bindkey и bindkey -a) (--raorn)


Как заставить BackSpace отменять последнее дополнение? А похоже что никак. Зато можно повесить это на Ctrl-BackSpace:



Страницы, ссылающиеся на данную: Altlinux/DotFiles/Shells/Zsh