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: