Xonsh - командная оболочка, сочетающая Python с лучшими возможностями Bash, zsh и fish
Xonsh позиционируется как оболочка общего назначения, пригодная для повседневного использования. Поддерживаются такие возможности работы в командной строке, как автодополнение ввода клавишей табуляции, навигация по истории выполнения операций, подсветка синтаксиса, автоматическое формирование контекстных уточнений (suggestion), определение псевдонимов и т.п. Для расширения функциональности могут подключаться расширения.
При работе в xonsh в командной строке доступны типовые библиотеки функций Python, например, можно использовать регулярные выражения при выборке файлов, манипулировать контентом в формате JSON, выполнять математические действия, вызывать функции библиотек pandas, NLTK и numpy в процессе проведения научных исследований. При этом, в отличие от IPython, выполнение команд не требует использования отдельного префикса. Разбор ввода производится в привязке к контексту, например, ввод "ls -l" может быть трактован как вызов команды ls с аргументом "-l", но если определены переменные "ls" и "l", то выражение будет трактоваться как "ls минус l". Также можно явно использовать режим Python и режим подкомманд (к в обычном shell). Дополнительно предлагается собственный менеджер виртуальных Python-окружений Vox, позволяющий одновременно работать в нескольких изолированных пространствах имён.
Отдельного внимания заслуживают средства по работе с историей операций, которые построены с использованием асинхронной модели, охватывающей сразу все активные сеансы, а не только текущий терминал. При желании можно сохранять в истории не только пользовательский ввод, но и результаты выполнения операций и формируемый командами вывод. Например, спустя какое-то время после получения сообщения об ошибке, можно вернуться для повторного просмотра текста ошибки и кода возврата, или сравнить вывод при запуске программы с разными аргументами. Более того, имеется возможность повторно проиграть набор сохранённых в истории команд. История сохраняется в форме коллекции файлов в формате JSON.
Источник: http://www.opennet.ru/opennews/art.shtml?num=44547
|
0 | Tweet | Нравится |
|