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

8

Scrivo molte e-mail tecniche e mi piace usare un font monospazio per i bit di codice. Evidenzia il testo, premi apple-T, scegli il mio font dall'elenco dei preferiti, quindi chiudi la finestra dei caratteri. C'è un modo per usare una scorciatoia da tastiera per applicare un determinato carattere al testo attualmente selezionato? Idealmente questo sarebbe OS-wide, ma se ciò non è possibile, posso usarlo solo per una singola app (Mail.app)

    
posta Sam Barnum 04.03.2011 - 21:01
fonte

4 risposte

2

Ho cercato di farlo da molto tempo.

Sono finalmente riuscito a ottenere qualcosa che funziona davvero alla grande per me, con l'aiuto dello strumento Alfred e Highlight CLI.

Ecco la porzione di 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 di scelta rapida aggiunga __SHORTCUT__ per essere riconosciuto e l'argomento sia "Selezione in OSX":

Brevedemo link

    
risposta data 16.07.2017 - 20:48
fonte
1

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

Way 1: piano messaggio di testo

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

Oraquandotitroviinunmessaggioincuivuoiusareuncaratteremonospazialepuoisemplicementepremere:Comando-Maiusc-Tepuoialternaretrailcaratterealarghezzafissadituasceltaeilcaratterestandard(testoinchiaroetestoricco).

Losvantaggiodiquestometodoècheseildestinatariononhaimpostatoilcaratteresuuncaratterealarghezzafissa,potrebbenonvedereilmessaggiocomeprevisto.

Way2:impostailcarattereconApplescript

IlsecondomodoperfarlosarebbequellodicreareunnuovomessaggioconilfontcorrettosceltousandoApplescript.Puoifarloinquestomodo:

tellapplication"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 a qualcosa con questo script. Sembra che Mail non ti permetta di impostare il carattere per un messaggio vuoto.

Way 3: Usa TextExpander

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

TextExpander ti permetterà di inserire testi in formato RTF (testo con font, colore, stile, eccetera). Basta creare uno snippet di tipo Testo formattato, Immagini e impostare un carattere per il testo che si sta inserendo. Dovrai includere almeno un carattere di spazio per far funzionare questa strategia.

Avrai bisogno che i tuoi snippits includano almeno un carattere di spazio per assicurarti che il font abbia bisogno.

    
risposta data 17.09.2011 - 22:51
fonte
1

Quello che ho finito usando era specificare manualmente monospace in un testo, poi Format - > Copia stile (Opzione + Cmd + C) che copia il formato ma non il testo. Quindi seleziona un altro testo normale e Formato- > Incolla stile (Opzione + Cmd + V) che assegna questo formato alla selezione. Dopo aver riavviato, devi farlo di nuovo, e funziona solo per uno stile, ma questo soddisfa le mie esigenze.

    
risposta data 26.09.2016 - 22:46
fonte
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 i dati di solo testo, quindi l'incollamento funzionerà solo nelle viste 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

Copia 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
    
risposta data 20.09.2011 - 10:35
fonte

Leggi altre domande sui tag