как интегрировать ZSH и (i) Python?

Я любил zsh в течение долгого времени, и позже я обнаруживал преимущества ipython интерактивный интерпретатор python самостоятельно. Способность к CD, к ls, для выполнения или к! действительно очень удобно. Но теперь чувствует себя странным иметь такую неуклюжую оболочку, когда в ipython, и интересно, как я мог интегрировать свой zsh и свой ipython лучше.

Конечно, я мог переписать свой .zshrc и все свои сценарии в Python, и эмулировать большую часть моего мира оболочки от ipython, но он не чувствует себя хорошо. И я, очевидно, не готов использовать ipython в качестве основной оболочки так или иначе.

Так, здесь прибывает мой вопрос: как Вы работаете эффективно между Вашей оболочкой и Вашим циклом команды Python? Я пропускаю некоторую очевидную стратегию интеграции? Я должен сделать все это в emacs?

11
задан Gyom 10 June 2009 в 03:11
поделиться

2 ответа

Я задал этот вопрос в списке zsh, и этот ответ у меня сработал. YMMV.

В genutils.py после строки

, если не выполняется отладка:

Удалите строку:

stat = os.system (cmd)

Замените ее на:

stat = subprocess.call (cmd, shell = True, executable = '/ bin / zsh')

видите ли, проблема в том, что это "!" call использует os.system для его запуска, по умолчанию это manky old / bin / sh.

Как я уже сказал, у меня это сработало, хотя я не уверен, что произошло за кулисами.

9
ответ дан 3 December 2019 в 08:05
поделиться

Вы можете запускать команды оболочки, начав их с восклицательного знака и записывая вывод в переменную python. Пример: перечисление каталогов в вашем каталоге / tmp :

ipy> import os
ipy> tmplist = !find /tmp
ipy> [dir for dir in tmplist if os.path.isdir(dir)]

Объект списка - это специальный объект ipython с несколькими полезными методами. Пример: список файлов, оканчивающихся на .pdf

ipy> tmplist.grep(lambda a: a.endswith('.pdf')) # using a lambda
ipy> tmplist.grep('\.pdf$') # using a regexp

. Вы можете многое сделать, прочитав список магических команд:

6
ответ дан 3 December 2019 в 08:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: