LINUX.ORG.RU

bash autocompletion из python


0

0

Есть питоновский скрипт. Необходимо по первой части команды дополнить ее до полной(по возможности) так, как это сделал бы баш. Грубо говоря нужна функция, работающая где-то так: >>> bash_complete('mpla') 'mplayer'

Самому переписывать башевский автокомплит с нуля не охота. Нельзя ли заставить баш это делать?

★★★★★
Ответ на: комментарий от anonymous

возможно выдрать оттуда нужный модуль будет проще чем с башем договариваться

anonymous
()

не совсем понятно, что хотел автор.

то ли 1) собственное автодополнение в bash'е

то ли 2) интерактивный скрипт на python'е с использованием readline

то ли 3) некую функцию в питоне, которая по части "команды" возвращает

то ли 4) что-то ещё...

jellyfish
()
Ответ на: комментарий от Davidov

и чем же так хорош ipython и как он поможет автору?

автодополнение и отступы - это конечно плюс.

но нестандартность строк приглашения - явно неудачная. (к тому же про doctest можно забыть)

и расцветка попугайская - лично меня - раздражает

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

>и чем же так хорош ipython и как он поможет автору?

Поюзай, поймешь.

>нестандартность строк приглашения - явно неудачная

Это настраивается.

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

2jellyfish Непосредственно башевское автодополнение из питона юзать. То есть необходимо получить результат действий в консоле, на пример таких:

mplayer ~/movies/my<TAB>

и получить

mplayer ~/movies/my_hardcore_porn.avi

имея лишь строку "mplayer ~/movies/my"

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

Имхо, никак. Башевское автодополнение - всего лишь скрипт /etc/bash_completions длиной чуть более чем девять тысяч строк :)

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

"Никак" не в смысле "это невозможно", а в смысле, что 1\х прийдется юзать костыли в виде вызова подпроцесса. Да и вообще это непортабельно.

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