2014-02-04 2 views
1

TextWranger поставляется с инструментом командной строки «edit», что позволяет мне открыть файл для редактирования в командной строке. Проблема в том, что программа «edit» заканчивается (возвращает управление вызывающей программе), как только она отправляет команду TextWrangler, чтобы открыть файл.Есть ли способ узнать из командной строки, какие файлы TextWrangler в настоящее время открыт?

Это может создать проблему, если я хочу использовать TextWrangler в качестве моего редактора по выбору для сценария, разработанного с использованием таких инструментов, как «vi», из-за чего оболочка заставляет их ждать завершения редактирования и файл закрыт.

Теперь, в теории, я знаю способ, которым я могу обойти это. Я могу написать скрипт-оболочку, который выполняет три функции: (1) вызывает «редактирование» с любым файлом, который я желаю редактировать (2) продолжает его запускать, проверяя снова и снова (не чаще, чем каждую секунду), но может быть предпочтительнее отредактировано для этого less), чтобы увидеть, есть ли у TextWrangler файл, который я попросил отредактировать, и (3) завершение его выполнения только один раз, когда TextWrangler больше не открывает файл.

Конечно, это то, что я в настоящее время могу делать только теоретически - чтобы довести теорию до реальной практики, есть еще одна вещь, которую мне нужно знать --- и это есть там путь для сценария, чтобы проверить из командной строки, какие файлы TextWrangler в настоящее время открыты, или еще лучше, независимо от того, открыт ли он для этого конкретного файла, с которым я связан?

ответ

1

Использовать --wait для обоих twdiff и edit. Я использую это широко с помощью vim, а также svn/git: без этих флагов временные файлы немедленно удаляются, а diff ing или их редактирование вызывает ошибки, поскольку исходный файл не может быть найден.

Он также позволяет вам перемещаться по нескольким файлам, и следующий файл не открывается, пока последний не был закрыт.

См. twdiff -? или edit -? для получения более подробной информации.

+0

спасибо. :-) Я просто попробовал ваш ответ, и он отлично работает. :-) Раньше мне было интересно, если я когда-нибудь найду информацию, которая мне нужна, чтобы написать этот сценарий оболочки, о котором я говорил. :-) Теперь мне может не понадобиться писать скрипт-оболочку вообще, и если я это сделаю, все, что должен сделать этот сценарий оболочки, это добавить параметр «-w» (a.k.a. «--wait»). :-) Благодаря. :-) –

+0

Рад ответить помогло. В качестве отступления, иногда «twdiff» не будет работать правильно, если задействовано несколько файлов, а 'twdiff' используется в скрипте (например, для выполнения diff для' git') и строки сценария, это необходимо: '/ usr/local/bin/twdiff --wait --resume" $ ​​2 "" $ 5 "| cat'. Обратите внимание на конец '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' – OnlineCop

+0

Да --- хотя если [tag: git] добавляет ключевую особенность, у меня нет намерения использовать ее в любом моем проекте. Ключевой особенностью, которая мне потребуется, является способность иметь клон средней глубины, который в отличие от мелких клонов может в полной мере участвовать в проекте в целом (включая генерирование, толкание и вытягивание), но в отличие от полного клона необходимо содержать историю проекта _entire_ - всю историю проекта на определенную дату, а также информацию о происхождении версии каждого файла, которая существовала в то время, когда начинается история средней глубины. –

 Смежные вопросы

  • Нет связанных вопросов^_^