Надсилання команд з TextWrangler до терміналу


1

Я хочу відправити команди з TextWrangler до терміналу. Навіть якщо я виявив це , я не розумію, як це працює, оскільки я абсолютно новачок у Unix та працює з Applescripts.

tell application "TextWrangler"
    set the_selection to (selection of front window as string)
    if (the_selection) is "" then
        set the_selection to line (get startLine of selection) of front window as string
    end if
end tell

tell application "Terminal"
    do script with command the_selection in window 1
end tell

Я зберегла Applescript, який виглядає приблизно так: введіть тут опис зображення

Тепер, що я думаю, це помістити сценарій у папку сценаріїв TextWrangler: введіть тут опис зображення

  1. Але потім, як я можу надсилати команди до Terminal.app?
  2. Як я можу натиснути cmd + enter, щоб надіслати рядок з TextWrangler до терміналу?

Я хочу запустити файл за рядком. Якщо я хочу записати все, що я роблю, щоб перевірити різні функції, не запускаючи весь сценарій
М. Босолей

Відповіді:


2

Ви повинні помістити сценарій у "/Users/yourName/Library/Application Support/TextWrangler/Scripts"папку

Після того:

  • Відкрийте налаштування TextWrangler
  • Виберіть "Меню та ярлики" -> "Сценарії" -> "Ваш сценарій", щоб додати ярлик до сценарію
  • TextWrangler приймає клавіші (cmd + enter) як ярлик введіть тут опис зображення

Це саме те, що мені було потрібно! Я думаю, ми зараз можемо використати автодоповнення якимось чином ... Я дізнаюся це. Дякую!
М. Божолей

@ jackjr300, в якій програмі ви обробляли зображення Налаштування, щоб додати стрілки, зокрема вигнуту стрілку?
користувач3439894

1
@ user3439894, я використовую Previewпрограму на El Capitan , меню " Інструменти " -> " Анотація " -> " Стрілка ". - Потім перетягніть одну з синіх ручок, щоб перемістити стрілку або змінити її розмір, перетягніть зелену ручку, щоб зробити криву. - Ви можете змінити стиль форми, ви можете додати текст на початку або в кінці стрілки.
jackjr300

1
@ jackjr300, Дякую за інформацію про анотацію до зображення. Також дякую за пораду щодо призначення команд-введення з TextWrangler Preferences. Я намагався призначити в системних налаштуваннях Apple> Клавіатура> Клавіші швидкого доступу> Комбінації програм та ОС X 10.8.5, і хоча технічно я можу призначити команду-введення для команди меню скрипту в TextWrangler, тим не менш, це не працює. Він видаляє вибране і вставляє новий рядок, що, звичайно, перемагає мету. Однак, коли це робиться з переваг TextWrangler, це працює. Тож дякую за все. +1
користувач3439894

1

Щоб використовувати скрипт AppleScript у меню скриптів TextWrangler, він (або посилання на нього) повинен знаходитись у папці сценаріїв TextWrangler, розташованій за адресою, ~ / Бібліотека / Підтримка програм / TextWrangler / Сценарії , щоб він відображався в меню. Примітка: "~" на цьому шляху - це ваша домашня папка, і папка "Бібліотека" може не бути видимою. Ви можете відкрити його з меню скриптів TextWrangler, командою Відкрити папку сценаріїв і розмістити скрипт або посилання на скрипт звідки б ви не зберегли його.

Для того, щоб відповісти на це питання, я створив AppleScript під назвою Run Selected Line (s) у Terminal.scpt і розмістив його в папці Script TextWrangler і тепер доступний у меню Script у TextWrangle, як показано на зображенні нижче.

TW_Script_Menu.png

Однак, сценарій, який ви маєте, як написаний, може вийти з ладу, оскільки Terminal може бути трохи вибагливим. Іншими словами, якщо Термінал закритий під час виконання сценарію , тоді написаний код може призвести до помилки, наприклад: "Виникла помилка сценарію: Термінал отримав помилку: Неможливо отримати вікно 1."

Навіть кажучи, що Термінал активувати не відкрив вікно, як це робиться під час відкриття терміналу з плитки Dock, я встановив "Keep in Dock", і я отримав вищезгадану помилку. Тож запит Google дав багато корисної інформації. Тому я експериментував із кількома різними рішеннями, які я бачив, і код, який я використовую, показаний нижче.


tell application "TextWrangler"
    activate
    set the_selection to (selection of front window as string)
    if (the_selection) is "" then
        set the_selection to line (get startLine of selection) of front window as string
    end if
end tell

tell application "Terminal"
    if not (exists window 1) then reopen
    activate
    -- delay 0.5
    do script with command the_selection in front window
end tell

Зауважте, що я прокоментував delay команду за допомогою --і може бути, а може і не потрібна, залежно від того, термінал спочатку закритий та чи повільно реагує ваша система. Значення в секундах , виражені в десятковому. Ви можете коментувати та змінювати при необхідності.

Зображення коду, що показує синтаксичне виділення:

код, що відображає синтаксичне виділення

Примітка. Це було протестовано в ОС X 10.8.5 та TextWrangler v4.5.9 (3390) і може реагувати по-різному в інших версіях OS X та або TextWrangler.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.