Weisen Sie dem ausgewählten Text mit der Tastenkombination in Mac OS X eine monospaced Schriftfamilie zu

8

Ich schreibe viele technische E-Mails und verwende gerne eine monospaced Schriftart für die Codebits. Markieren Sie Text, drücken Sie Apple-T, wählen Sie meine Schriftart aus der Favoritenliste aus und schließen Sie das Schriftfenster. Gibt es eine Möglichkeit, eine Tastenkombination zu verwenden, um eine bestimmte Schriftart auf den aktuell ausgewählten Text anzuwenden? Im Idealfall wäre dies betriebssystemweit, aber wenn dies nicht möglich ist, kann ich es nur für eine einzelne App verwenden (Mail.app).

Sam Barnum
quelle
Welche Version? ⌘-T funktioniert in Mail 3.6.
@trashgod Ich suche nach einer einzelnen Tastenkombination, mit der ich die Schriftart der aktuellen Auswahl auf eine bestimmte Schriftart einstellen kann. Wahrscheinlich eine Art Makro.
1
Dies scheint ziemlich trivial zu sein, um mit AppleScript zu tun und diesem Skript dann einfach einen Schlüssel zuzuweisen. Wenn heute Abend jemand nicht vorbeikommt, werde ich morgen etwas zaubern.
Lemonginger

Antworten:

2

Ich habe sehr lange danach gesucht.

Mit Hilfe von Alfred und dem Highlight CLI-Tool gelang es mir schließlich, etwas zu finden, das für mich wirklich gut funktioniert.

Hier ist der Alfred-Skriptteil:

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}'

Stellen Sie sicher, dass der Verknüpfungsauslöser __SHORTCUT__erkannt wird und das Argument "Auswahl in OSX" lautet:

Geben Sie hier die Bildbeschreibung ein

Kurze Demo https://youtu.be/y8NJT52APRQ

Yann Bizeul
quelle
1

Ich kenne keine systemweite Möglichkeit, das Bedienfeld „Schriftarten“ zu skripten, aber hier sind einige Möglichkeiten, um schnell auf Monospace-Schriftarten in Mail.app zuzugreifen

Weg 1: Textnachricht planen

Gehen Sie zu Mail.apps Einstellungen> Schriftarten und Farben und aktivieren Sie das Kontrollkästchen "Schriftart mit fester Breite für Nur-Text-Nachrichten verwenden".

Geben Sie hier die Bildbeschreibung ein

Wenn Sie sich in einer Nachricht befinden, in der Sie eine Monospace-Schriftart verwenden möchten, können Sie einfach Folgendes drücken: Command- Shift- Tund Sie können zwischen der Schriftart mit fester Breite Ihrer Wahl und Ihrer Standardschriftart (Nur-Text-Nachricht und Rich-Text) wechseln.

Der Nachteil dieser Methode ist, dass der Empfänger die Nachricht möglicherweise nicht wie beabsichtigt sieht, wenn er seine Schriftart nicht auf eine Schriftart mit fester Breite eingestellt hat.

Weg 2: Stellen Sie die Schriftart mit Applescript ein

Die zweite Möglichkeit besteht darin, eine neue Nachricht mit der richtigen Schriftart zu erstellen, die mit Applescript ausgewählt wurde. Sie können das so machen:

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

Sie müssen den Inhalt mit diesem Skript auf etwas einstellen. Anscheinend können Sie mit Mail die Schriftart für eine leere Nachricht nicht festlegen.

Weg 3: Verwenden Sie TextExpander

Dieser Weg kostet Geld, aber es könnte Ihnen geben, wonach Sie suchen. Sie können einige TextExpander-Verknüpfungen (34,99 USD im App Store) für feste Breite und normalen Typ einrichten, damit Sie durch Eingabe einiger Zeichen hin und her wechseln können.

TextExpander

Mit TextExpander können Sie Rich-Text einfügen (Text mit Schriftart, Farbe, Stil usw.). Erstellen Sie einfach einen Ausschnitt vom Typ Formatierter Text, Bilder und legen Sie eine Schriftart für den Text fest, den Sie einfügen möchten. Sie müssen mindestens ein Leerzeichen einfügen, damit diese Strategie funktioniert.

Sie müssen Ihre Snippits mindestens ein Leerzeichen enthalten, um sicherzustellen, dass die Schriftart verwendet wird.

Samuel Mikel Bowles
quelle
1
Samuel, ich suche nach einer Möglichkeit, den hervorgehobenen Text nur monospaced zu machen, nicht die gesamte Nachricht. Ich bin damit einverstanden, ein Applescript zu verwenden, das nur die Auswahl der aktuellen App beeinflusst. Können Sie eine Möglichkeit empfehlen, das Applescript mit einer benutzerdefinierten Tastenkombination auszulösen?
Sam Barnum
1
Sam, das Problem ist, dass Mail.app kein Objekt für den ausgewählten Text hat. Ich habe einige Zeit damit verbracht, einen Weg zu finden, und ich kann sagen, dass es keinen sauberen Weg gibt, dies zu erreichen.
Samuel Mikel Bowles
2
Mit TextExpander können Sie den Inhalt der Zwischenablage in das monospace-formatierte Snippet einfügen. Wenn Sie also markieren, geben Sie einfach ⌘X und dann Ihre Snippet-Abkürzung ein, um sie wieder als Monospace einzufügen. Fügen Sie am Ende des Snippets ein Leerzeichen mit regelmäßiger Formatierung hinzu, und Sie können weiter tippen. TextExpander ist ansonsten verrückt nützlich; Jeder, der einen Mac benutzt, um Dinge zu erledigen, sollte ihn trotzdem besitzen.
75. Posaune
1

Am Ende habe ich Monospace in einem Text manuell angegeben und dann Format -> Kopierstil (Option + Befehlstaste + C), das das Format, aber nicht den Text kopiert. Wählen Sie dann einen anderen Klartext und Format-> Einfügestil (Option + Befehlstaste + V), der dieses Format der Auswahl zuweist. Nach dem Neustart müssen Sie dies erneut tun, und es funktioniert nur für einen Stil, aber dies entspricht meinen Anforderungen.

Sam Barnum
quelle
0

Kopieren Sie einen Charakter mit einem bestimmten Stil:

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

pbcopy -Prefer rtf enthält keine Nur-Text-Daten, daher funktioniert das Einfügen nur in Rich-Text-Ansichten.


Fügen Sie ein Zeichen mit einem bestimmten Stil ein:

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

Stil einfügen:

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
Lri
quelle