LINUX.ORG.RU

Автодополнение недописанного пути в bash как в zsh

 , , ,


1

3

Давно хотел перетащить в bash возможность разворачивать недописанные пути, как в zsh, т.е. cd /u/l/b<Tab> разворачивать в cd /usr/local/bin. Но мое гугл-фу здесь меня не выручало, а может, никто действительно раньше такого не делал.

Поэтому я написал нужную функцию для автодополнения сам. Здесь можно увидеть фичу в действии, а здесь получить код для ~/.bashrc

Надеюсь, кому-нибудь покажется полезным.

★★★

Последнее исправление: si0 (всего исправлений: 1)

Пригодится, спасибо.

Deleted
()
Ответ на: комментарий от anonymous

Пользуюсь им лет 5, брат жив, зависимость есть

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

Zsh хорош ровно до тех пор, пока не станет нехорош. Помню, несколько лет назад на этом же форуме некто GotF в красках расписывал, почему лучше пользоваться bash вместо zsh, я на него тогда недоуменно смотрел. И ничего, прошло время, изменились задачи и приоритеты - теперь я с ним согласен.

Не думаю, что есть смысл повторять всю ту же полемику. Пусть каждый использует тот шелл, который ему нравится

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

Потом этот некто шесть лет пользовался zsh. И перешёл на bash, да. Теперь он тоже согласен с собой в 2011-ом 😂

anonymous
()
Ответ на: комментарий от burato

cd /u/l/b<Tab> разворачивать в cd /usr/local/bin

Таб нажимаешь не 3 раза, а 1, в конце. Итого: экономия ресурса 66%, Спуф одобрит.

ashot ★★★★
()

тема си^W множественных вариантов дополнения в середине пути не раскрыта!

P.S.: не знаю, как там с этим в zsh, и вообще, считаю это экономией на спичках.

aol ★★★★★
()

Поясни, как это вообще работает?

cd /u/l/b<Tab> разворачивать в cd /usr/local/bin

Почему не в /usr/lib/bind9 или /usr/lib64/babl?

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

А как по твоему он их сохранил? Использовал zsh.

ashot ★★★★
()

На самом деле cd тут лишнее.
В zsh давно поняли что не нужен ИИ и суперкластер, чтобы понять, что хочет пользователь, у шелла и так есть вся информация

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

есть, причем нормальное, а не упоротое, как хочет ТС.

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

Почему не в /usr/lib/bind9 или /usr/lib64/babl?

Если glob /u*/l*/b* разрешается единственным образом, этот путь будет подставлен после вызова дополнения. Если несколькими - то их все можно будет перебирать по табу

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

Ну окей, хотя линк бы на тот тред не помешал.

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