Призначте сімейство шрифтів з односхилим виділенням тексту за допомогою комбінації клавіш у mac os x


8

Я пишу багато технічних електронних листів, і люблю використовувати однобічний шрифт для бітів коду. Виділіть текст, натисніть apple-T, виберіть мій шрифт зі списку обраних, а потім закрийте вікно шрифту. Чи існує спосіб використання комбінації клавіш, щоб застосувати заданий шрифт до вибраного тексту? В ідеалі це було б для ОС, але якщо це неможливо, я можу використовувати його лише для однієї програми (Mail.app)


Яка версія? Mail-T працює в Mail 3.6.

@trashgod Я шукаю єдину комбінацію клавіш, яку можна використовувати для встановлення шрифту поточного вибору на вказаний шрифт. Напевно, якийсь макрос.

1
Це здається досить тривіальним для AppleScript, а потім просто призначити ключ для цього сценарію. Якщо хтось не прийде до сьогоднішньої ночі, я завтра щось поцупив.
lemonginger

Відповіді:


2

Я дуже довго шукав це робити.

Нарешті мені вдалося закінчити щось, що справді чудово працює для мене, за допомогою інструмента Альфреда та Highlight CLI.

Ось частина сценарію Альфреда:

query="{query}"
if echo $query|grep -e "^__SHORTCUT__"
then
    echo "$query"|sed -E "s/^__SHORTCUT__//"|pbcopy
    syntax=txt
else
    osascript -e 'tell application "System Events" to keystroke "c" using {command down}'
    syntax=$query
fi

pbpaste|/usr/local/bin/highlight --syntax $syntax --font Menlo --font-size 12 --out-format=rtf|pbcopy
osascript -e 'tell application "System Events" to keystroke "v" using {command down}'

Переконайтеся, що тригер швидкого доступу додається __SHORTCUT__до розпізнавання, а аргумент - "Виділення в OSX":

введіть тут опис зображення

Коротка демонстрація https://youtu.be/y8NJT52APRQ


1

Я не знаю загальносистемного способу скриптування панелі шрифтів, але ось декілька способів отримати швидкий доступ до однопросторових шрифтів у Mail.app

Спосіб 1: План текстового повідомлення

Перейдіть до налаштувань Mail.app> Шрифти та кольори та встановіть прапорець "Використовувати шрифт фіксованої ширини для звичайних текстових повідомлень"

введіть тут опис зображення

Тепер, коли ви знаходитесь у повідомленні, де ви хочете використовувати шрифт моношпарки, ви можете просто натиснути: Command- Shift- Tі ви можете перемикатися між вашим вибором шрифту фіксованої ширини та вашим стандартним шрифтом (звичайне текстове повідомлення та багатий текст).

Мінус цього методу полягає в тому, що якщо одержувач не встановив їх шрифт фіксованої ширини, він може не бачити повідомлення за призначенням.

Спосіб 2: Встановіть шрифт за допомогою Applescript

Другий спосіб зробити це - створити нове повідомлення з правильним шрифтом, обраним за допомогою Applescript. Ви можете зробити це так:

tell application "Mail"
    set outgoingMessage to make new outgoing message
    set fontFace to "Times"
    tell outgoingMessage
        set the content to " "
        set font of content to fontFace
        set size of content to (14)
        set visible to true
    end tell
end tell

Вам потрібно встановити вміст на чомусь за допомогою цього сценарію. Здається, Mail не дозволяє встановити шрифт для порожнього повідомлення.

Спосіб 3: Використовуйте TextExpander

Цей спосіб коштує грошей, але це може дати вам те, що ви шукаєте. Ви можете встановити пару текстових скорочень TextExpander ($ 34,99 у магазині додатків) для фіксованої ширини та звичайного типу, щоб ви могли перемикатися вперед і назад, набравши кілька символів.

TextExpander

TextExpander дозволить вставити багатий текст (текст із набором шрифту, кольору, стилю тощо). Просто створіть фрагмент типу "Відформатований текст", "Фотографії" та встановіть шрифт для тексту, який ви будете вставляти. Вам потрібно буде включити принаймні пробільний символ, щоб ця стратегія працювала.

Вам знадобляться, щоб ваші фрагменти містили принаймні пробільний символ, щоб забезпечити отримання шрифту.


1
Самюеле, я шукаю спосіб просто зробити виділений текст однобічним, а не всім повідомленням. Я добре з використанням Applescript, який впливає лише на вибір поточного додатка. Чи можете ви порекомендувати спосіб запустити яблучний скрипт за допомогою спеціальної комбінації клавіш?
Сем Барнум

1
Сем, проблема в тому, що Mail.app не містить об'єкта для вибраного тексту. Я витратив деякий час, намагаючись з'ясувати спосіб, і можу сказати, що немає чистого способу досягти цього.
Самуель Мікель Боулз

2
За допомогою TextExpander ви зможете вставити вміст буфера обміну в фрагмент формату монопростіру. Отже, коли ви виділяєте, ви просто введіть ⌘X, а потім абревіатуру фрагмента, щоб вставити його назад як монопростір. Додайте пробіл з регулярним форматуванням до кінця фрагмента, і ви готові продовжувати друкувати. TextExpander в іншому випадку божевільно корисний; кожен, хто використовує Mac для завершення роботи, повинен у будь-якому разі володіти ним.
75-й тромбон

1

Що я в кінцевому підсумку використовував, вказував моноблок у певному тексті, а потім Формат -> Стиль копіювання (Опція + Cmd + C), який копіює формат, але не текст. Потім виберіть інший звичайний текст та Формат-> Стиль вставки (Опція + Cmd + V), який призначає цей формат виділенню. Після перезапуску вам потрібно зробити це ще раз, і це працює лише для одного стилю, але це відповідає моїм потребам.


0

Скопіюйте персонаж із певним стилем:

echo "<span style=\"font:14px 'Monaco'\">&nbsp;</span>" | textutil -format html -convert rtf -stdin -stdout | pbcopy -Prefer rtf

pbcopy -Prefer rtf не включає звичайні текстові дані, тому вставка працюватиме лише у переглядах з розширеним текстом.


Вставте персонаж із певним стилем:

try
    try
        set old to the clipboard
    end try
    set html to quoted form of "<span style=\"font:14px 'Monaco'\">&nbsp;</span>"
    do shell script "echo " & html & " | textutil -format html -convert rtf -stdin -stdout | pbcopy -Prefer rtf"
    tell application "System Events" to keystroke "v" using command down
    delay 0.03
    set the clipboard to old
end try

Стиль вставки:

try
    try
        set old to the clipboard
    end try
    tell application "System Events" to keystroke "c" using command down
    delay 0.03
    set input to Unicode text of (the clipboard as record)
    set txt to quoted form of ("<span style=\"font:14px 'Monaco'\">" & input & "</span>")
    do shell script "echo " & txt & " | textutil -format html -convert rtf -stdin -stdout | pbcopy -Prefer rtf"
    tell application "System Events" to keystroke "v" using command down
    delay 0.03
    set the clipboard to old
end try
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.