Assegna la famiglia di caratteri a spaziatura fissa al testo selezionato con la scorciatoia da tastiera in mac os x


8

Scrivo molte e-mail tecniche e mi piace usare un carattere monospaziato per i bit di codice. Evidenzia il testo, premi apple-T, scegli il mio carattere dall'elenco dei preferiti, quindi chiudi la finestra del carattere. C'è un modo per utilizzare una scorciatoia da tastiera per applicare un determinato carattere al testo attualmente selezionato? Idealmente, sarebbe a livello di sistema operativo, ma se ciò non fosse possibile, posso usarlo per una sola app (Mail.app)


Quale versione? ⌘-T funziona in Mail 3.6.

@trashgod Sto cercando una scorciatoia da tastiera che posso usare per impostare il carattere della selezione corrente su un carattere specificato. Probabilmente una sorta di macro.

1
Questo sembra abbastanza banale da fare con AppleScript e quindi assegnare una chiave a quello script. Se qualcuno non viene stasera, domani mi faccio schioccare qualcosa.
Lemminger

Risposte:


2

Sto cercando di farlo da molto tempo.

Alla fine sono riuscito a ottenere qualcosa che funziona davvero alla grande per me, con l'aiuto dello strumento CLI di Alfred e Highlight.

Ecco la parte dello script Alfred:

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

Assicurati che il trigger del collegamento aggiunga __SHORTCUT__per essere riconosciuto e l'argomento sia "Selezione in OSX":

inserisci qui la descrizione dell'immagine

Breve demo https://youtu.be/y8NJT52APRQ


1

Non conosco un modo a livello di sistema per eseguire lo script del pannello Font, ma ecco alcuni modi per ottenere un rapido accesso ai font monospace in Mail.app

Modo 1: pianificare un messaggio di testo

Vai alle preferenze di Mail.app> Caratteri e colori e seleziona la casella di controllo "Usa un carattere a larghezza fissa per i messaggi di testo semplice"

inserisci qui la descrizione dell'immagine

Ora quando ti trovi in ​​un messaggio in cui desideri utilizzare un carattere monospaziale puoi semplicemente premere: Command- Shift- Te puoi alternare tra il carattere a larghezza fissa di tua scelta e il tuo carattere standard (messaggio di testo normale e rich text).

Lo svantaggio di questo metodo è che se il destinatario non ha impostato il carattere su un carattere a larghezza fissa, potrebbe non vedere il messaggio come previsto.

Modo 2: imposta il carattere con Applescript

Il secondo modo per farlo sarebbe quello di creare un nuovo messaggio con il carattere corretto scelto usando Applescript. Puoi farlo in questo modo:

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

Devi impostare il contenuto su qualcosa con questo script. Sembra che Mail non ti permetta di impostare il carattere per un messaggio vuoto.

Modo 3: utilizzare TextExpander

In questo modo costa denaro ma potrebbe darti quello che stai cercando. Puoi impostare un paio di scorciatoie TextExpander ($ 34,99 USD su app store) per larghezza fissa e tipo normale in modo da poter passare avanti e indietro digitando alcuni caratteri.

TextExpander

TextExpander ti permetterà di inserire rich text (testo con set di caratteri, colori, stile, ecc.). Basta creare uno snippet di tipo Testo formattato, Immagini e impostare un carattere per il testo che verrà inserito. Dovrai includere almeno un carattere spaziale affinché questa strategia funzioni.

Avrai bisogno che i tuoi frammenti includano almeno un carattere spazio per assicurarti che il font prenda.


1
Samuel, sto cercando un modo per rendere il testo evidenziato monoposto, non l'intero messaggio. Sto bene usando un Applescript che influenza solo la selezione dell'app corrente. Puoi consigliarmi un modo per attivare lo script di mele con una scorciatoia da tastiera personalizzata?
Sam Barnum,

1
Sam, il problema è che Mail.app non ha un oggetto per il testo selezionato. Ho trascorso un po 'di tempo a cercare un modo e posso dire che non esiste un modo pulito per raggiungere questo obiettivo.
Samuel Mikel Bowles,

2
Con TextExpander, è possibile inserire il contenuto degli Appunti nello snippet in formato monospace. Quindi, quando si evidenzia, basta digitare ⌘X e quindi la sigla dello snippet per incollarlo nuovamente come monospace. Aggiungi uno spazio con una formattazione regolare alla fine dello snippet e sei pronto per continuare a digitare. TextExpander è altrimenti follemente utile; tutti quelli che usano un Mac per fare le cose dovrebbero comunque possederlo.
75th Trombone,

1

Quello che ho finito per usare è stato specificare manualmente il monospace in alcuni testi, quindi Formato -> Copia stile (Opzione + Cmd + C) che copia il formato ma non il testo. Quindi selezionare qualche altro testo semplice e Formato-> Incolla stile (Opzione + Cmd + V) che assegna questo formato alla selezione. Dopo il riavvio, è necessario ripetere l'operazione e funziona solo per uno stile, ma questo soddisfa le mie esigenze.


0

Copia un personaggio con uno stile specifico:

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

pbcopy -Prefer rtf non include dati di testo semplice, quindi incolla funzionerà solo in visualizzazioni rich text.


Inserisci un personaggio con uno stile specifico:

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

Incolla stile:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.