AppleScript для створення інтервалу інтервалу типу "SPACING"?


2

Щоб форматувати текстові документи більш читабельним чином, було б непогано відформатувати вибрані тексти за допомогою яблучного сценарію, виконаного за допомогою служб контекстного меню, таким чином:

  1. виберіть "текст" курсором
  2. виберіть контекстне меню / послуги Пробіл (створити)
  3. вибраний текст буде форматований у "TEX T"

Хтось має ноу-хау для програмування такого сценарію?


Ви також можете просто збільшити міжрядкові букви.
— праворуч

Відповіді:


3

AppleScript для розширення тексту

Наступний фрагмент AppleScript додає пробіл між кожним символом рядка. Скопіюйте та вставте цей код у Програми> Утиліти> Редактор сценаріїв, щоб випробувати його:

set myText to "hello world"
set myResult to ""

repeat with c in every character in myText
    set myResult to myResult & " " & c
end repeat

display dialog myResult

Сервіс автоматизації

Використовуючи цей скрипт, ви можете використовувати Програми> Автоматизатор для створення послуги контекстного меню.

Робочий процес автоматизації для розширення вибраного тексту

Нова послуга розширення тексту в TextEdit

  1. Запустіть Automator.app
  2. Створіть новий робочий процес, виберіть Сервіс
  3. Додати дію запустити AppleScript
  4. Скопіюйте та вставте в сценарій:

    on run {input, parameters}
    
        set myText to input as string
        set myResult to ""
    
        repeat with c in every character in myText
            set myResult to ((myResult & " " & c) as string)
        end repeat
    
        -- Convert to upper case using `tr`
        set myResult to do shell script "echo " & quoted form of (myResult) & " | tr [:lower:] [:upper:]"
    
        return myResult
    end run
  5. Виберіть " Вихід" замінює вибраний текст

  6. Збережіть і протестуйте нову послугу

Ви це тестували? Я запитую, оскільки це не працює для мене в TextEdit під ОС X 10.8.5 та TextEdit під OSX 10.10.4. Або з або TextWrangler в ОС X 10.8.5 сервіс взагалі не відображається. Для мене це не велика справа, оскільки я не маю причин дублювати пробіл тексту, проте те, що ви подали, не працює в моїх системах.
— користувач3439894

Дуже дякую за вашу швидку і пристойну відповідь! Я спробував це, але проблема полягає в тому, що вибраний текст не береться. Якщо я встановив myText на "asdkfsafg", він працює ідеально. Якщо я використовую його для встановлення myText для введення, я отримав повідомлення про помилки або вибраний текст видаляється. Вхідним параметром в Automator є Текст і кожна програма. Що відбувається не так?
— user139574

@ user3439894, здається, у нас однакова поведінка
— user139574

@ user139574 Я протестував AppleScript на OS X 10.10.4, але не сервіс. Яке повідомлення про помилку ви бачите? Ви намагалися створити інші сервіси за допомогою Automator? Що станеться, якщо служба поверне статичну рядок, наприклад return "test"замість return myResult?
— Грем Мілн

1
@Graham Miln, Зараз це працює для мене у трьох різних програмах, які я б використовував, якщо б у мене була потреба. Хоча в цьому конкретному сценарії у мене немає потреби, я все-таки забрав щось корисне, тому +1 тут.
— користувач3439894

1

Щоб обраний текст був перетворений у верхній регістр, а також пробіл між кожним символом, додайте наступний рядок до сценарію, опублікованого Грем Мілном.

set myResult to do shell script "echo " & quoted form of (myResult) & " | tr [:lower:] [:upper:]"

Отже, в Automator це було б:

on run {input, parameters}

    set myText to input as string
    set myResult to ""

    repeat with c in every character in myText
        set myResult to ((myResult & " " & c) as string)
    end repeat

    set myResult to do shell script "echo " & quoted form of (myResult) & " | tr [:lower:] [:upper:]"

    return myResult

end run

Дякую за цю пропозицію. Я включив ваш trрядок у сценарій.
— Грем Мілн

@Graham Miln, немає проблем. Я б відредагував вашу відповідь безпосередньо, тому що це можна зробити декількома способами, і я вирішив опублікувати її як окрему відповідь, оскільки ви лише звернулися до верхньої частини ОП у своєму запиті як посилання в коментарі до вашої відповіді.
— користувач3439894
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.