3

У меня есть псевдоним для открытия файлов в Sublime Text 2:

alias sub='/Applications/Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2'

Но это раскручивает другой экземпляр Sublime Text 2 (в комплекте с восстановлением всех открытых файлов и папок в моем другом экземпляре).

Я хотел бы, чтобы файлы открывались в качестве вкладки в текущем экземпляре, что должно быть возможно, так как это то, что делает щелчок правой кнопкой мыши> Открыть с помощью ...> Sublime Text 2 .

Есть идеи, как это сделать из командной строки?

1 ответ1

3

Причина, по которой это не работает, заключается в том, что у вас неправильный псевдоним. Вот правильный вариант для Sublime Text 3:

alias subl='/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl'

Это псевдоним, который Sublime Text специально предоставляет для macOS. Он не будет блокировать выполнение и - по умолчанию - открывать файлы на вкладке рядом с уже открытыми.


Если вы хотите узнать больше о том, почему ваш псевдоним не работает, читайте дальше.

Пакеты приложений в OS X имеют суффикс .app , но при запуске они фактически запускают двоичный файл, указанный в Info.plist в указанном пакете. Это бинарный файл, на который ссылается ваш псевдоним в папке MacOS .

Запуск приложения из GUI или через Launch Services (например, через osascript или open) делает OS X открытым этот двоичный файл, но в то же время гарантирует, что он запускает только один экземпляр этого приложения. Когда вы вызываете двоичный файл напрямую, вы обходите это ограничение и запускаете другой экземпляр приложения - если только приложение не имеет мер для предотвращения запуска двух экземпляров, которые обычно обрабатывает OS X.

Также, в качестве побочного эффекта, запуск двоичного файла будет блокировать выполнение терминала, пока вы не выйдете из программы или не приостановите ее в фоновом режиме. Использование встроенного subl из Sublime Text возвращает управление вашему терминалу, поскольку он фактически использует вызов Launch Services для открытия пакета Sublime вместо адресации двоичного файла только в MacOS .

Так как вы в основном запускаете второй экземпляр Sublime Text, он покажет вам файлы, которые он ранее открыл, потому что это его поведение по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .