LINUX.ORG.RU

Автодополнение в Bash как в Zsh

 , ,


1

2

Здрасьте! Как в баше можно сделать автодополнение как в zsh, а именно: когда тыкаешь по табу он перебирает возможные варианты, а не только показывает тебе список возможного и ждёт пока введёшь следующий символ? Читал в гайдах по zsh-у, что такое можно сделать и в баше.

Просто используй zsh

anonymous
()

Да, в readline (не только в Баше) это возможно. И более того, афайк, уже назначено на <C-n> (вперед по списку) и <C-p> (назад). Посмотрите, как называется readline‘овская команда:

$ bind -p | grep C-n
и назначьте ее на <TAB> (т. е. замените \C-n на TAB и запишите получившееся в ~/.inputrc).

Zmicier ★★★★★
()
Ответ на: комментарий от amazpyel

zsh на разных серверах непредсказуемо работает, вплодь до всяких странностей с кодировками, которые решить не удавалось. Всё бы работало без занос — ничего бы и не менял.

Applejohn
() автор топика
Ответ на: комментарий от Zmicier

Спасибо за C-n и C-p, просмотрел, это меня устраивает!

Applejohn
() автор топика
Ответ на: комментарий от Zmicier

Спасибо за наводку, ТС не стал использовать эту команду, поэтому я напишу подробнее для остальных интересующихся (автодополнение в vim так же работает, по крайней мере, по умолчанию, отсюда и интерес).

Команда называется menu-complete. По умолчанию ни на что не забиндена.

Если хочется установить в bash:

bind 'tab: menu-complete'
Тоже самое, но в ~/.inputrc:
tab: menu-complete

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Стоит ещё добавить для перелистывания в обратную сторону:

bind 'tab: menu-complete'
bind '"\e\[Z": menu-complete-reverse' # Shift-TAB

Applejohn
() автор топика
Ответ на: комментарий от Applejohn

Да, хорошая идея. Только слеш перед [ вроде не нужен и похоже, что команда называется menu-complete-backward, а не menu-complete-reverse.

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.