OS X Sublime Text3 для использования оболочки zsh

Я хочу создать файл python, но получаю следующую ошибку:

/bin/bash: python: command not found

Причина в том, что я использую zsh вместо bash. Итак, как позволить Sublime посмотреть на /bin/zsh?


person ChenYang    schedule 25.07.2016    source источник
comment
При чем тут Sublime Text? Вы говорите о запуске сборки из Sublime Text?   -  person Droppy    schedule 25.07.2016
comment
Да. Я имею в виду запустить сборку с помощью Sublime Text. (Инструменты > Сборка)   -  person ChenYang    schedule 25.07.2016
comment
Вы сделали что-то, что испортило ваш глобальный $PATH, поскольку python находится в /usr/bin, который по умолчанию настроен правильно.   -  person Droppy    schedule 25.07.2016
comment
Вывод echo $PATH в Терминале: /usr/local/sbin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Users/chenyang/Downloads/android-sdk-macosx/platform-tools. Я столкнулся с той же проблемой, когда использовал CodeRunner, и решил ее в CodeRunner (stackoverflow.com/q/38554566/6631854) .   -  person ChenYang    schedule 25.07.2016
comment
Это из оболочки, но программы пользовательского интерфейса получают другой $PATH. Я думаю, вам сказали это в последнем вопросе, который вы задали по этому вопросу.   -  person Droppy    schedule 25.07.2016
comment
Я знаю, что в OS X Sublime Text имеет свой PATH, установленный launchctl, а не оболочкой. Я также пробовал launchctl setenv PATH "$PATH", но это не удалось.   -  person ChenYang    schedule 25.07.2016
comment
Давайте продолжим обсуждение в чате.   -  person ChenYang    schedule 25.07.2016


Ответы (3)


Это указывает на то, что ваш путь неверен, а не на то, какую оболочку вы обычно используете. В случае OSX путь для приложений с графическим интерфейсом устанавливается с помощью средств, отличных от пути для терминальных программ (которые вы знаете на основе ваших комментариев в вашем вопросе выше).

В любом случае, чтобы ответить на ваш вопрос (и для дальнейшего использования), команда exec в Sublime, которая используется для выполнения задач, включая системы сборки, указывает, что вещи должны выполняться через bash.

Используя PackageResourceViewer, вы можете извлечь файл exec.py из пакета по умолчанию и изменить его использование "/bin/bash" в "/bin/zsh" (или любую другую оболочку, которую вы хотите), как вы считаете нужным.

[РЕДАКТИРОВАТЬ]

Хотя приведенное выше будет работать, когда вы переопределяете файл из такого пакета, ваше переопределение сохраняется навсегда. То есть, если более новая версия Sublime включает другую версию exec.py с исправлениями ошибок или новыми функциями, вы не увидите их, потому что вы переопределили файл.

Поэтому следует помнить, что если вы выберете этот путь, на вас лежит ответственность за то, чтобы ваше переопределение всегда соответствовало текущей выпущенной версии. Сообщения об ошибках exec, вероятно, также останутся без внимания или вызовут слезы, когда обнаружится, что вы переопределили файл.

person OdatNurd    schedule 25.07.2016

Если все, что вам нужно, это открыть оболочку zsh из возвышенного, а не из оболочки bash по умолчанию, есть более простой способ сделать это. В OSX/Mac откройте настройки->параметры пакета->представление терминала->команды поддона. Измените /bin/bash на /bin/zsh, как показано ниже.

{ "args" : {"title": "Terminal (bash)", "cmd": "/bin/zsh -l"}, },

Это работает для возвышенного текста 3. Не проверял более низкие версии.

Надеюсь это поможет!! Ваше здоровье!!

person nikhil    schedule 10.04.2018

У меня отлично работает на Мохаве.

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/bin
person Kiryl Plyashkevich    schedule 02.11.2018