Tetapkan kelompok font tunggal untuk teks yang dipilih dengan pintasan keyboard di mac os x

8

Saya menulis banyak email teknis, dan suka menggunakan font monospace untuk bit kode. Sorot teks, tekan apple-T, pilih font saya dari daftar favorit, lalu tutup jendela font. Apakah ada cara untuk menggunakan pintasan keyboard untuk menerapkan font yang diberikan ke teks yang saat ini dipilih? Idealnya ini adalah OS-wide, tetapi jika itu tidak mungkin saya dapat menggunakannya hanya untuk satu aplikasi (Mail.app)

Sam Barnum
sumber
Versi apa? ⌘-T berfungsi di Mail 3.6.
@ trashgod Saya sedang mencari pintasan keyboard tunggal yang dapat saya gunakan untuk mengatur font pilihan saat ini ke font yang ditentukan. Mungkin semacam makro.
1
Ini tampaknya sepele untuk dilakukan dengan AppleScript dan kemudian hanya menetapkan kunci untuk skrip itu. Jika seseorang tidak datang malam ini saya akan menyiapkan sesuatu besok.
lemonginger

Jawaban:

2

Saya sudah lama mencari hal ini.

Saya akhirnya berhasil berakhir dengan sesuatu yang benar-benar berfungsi baik bagi saya, dengan bantuan Alfred dan alat Sorot CLI.

Inilah bagian skrip 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}'

Pastikan pemicu pintasan ditambahkan __SHORTCUT__untuk dikenali dan argumennya adalah "Pilihan dalam OSX":

masukkan deskripsi gambar di sini

Demo singkat https://youtu.be/y8NJT52APRQ

Yann Bizeul
sumber
1

Saya tidak tahu cara sistem untuk skrip panel Fonts tapi di sini ada beberapa cara untuk mendapatkan akses cepat ke font monospace di Mail.app

Cara 1: Rencanakan Pesan Teks

Buka preferensi Mail.app> Font & Warna dan centang kotak centang untuk "Gunakan font lebar tetap untuk pesan teks biasa"

masukkan deskripsi gambar di sini

Sekarang ketika Anda berada di pesan di mana Anda ingin menggunakan font monospace Anda cukup menekan: Command- Shift- Tdan Anda dapat beralih antara font lebar-tetap pilihan Anda dan font standar Anda (pesan teks biasa & teks kaya).

Kelemahan dari metode ini adalah jika penerima belum menyetel font mereka ke font dengan lebar tetap, mereka mungkin tidak melihat pesan sebagaimana dimaksud.

Cara 2: Atur Font dengan Applescript

Cara kedua untuk melakukan ini adalah membuat pesan baru dengan font yang benar dipilih menggunakan Applescript. Anda dapat melakukannya seperti ini:

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

Anda harus mengatur konten menjadi sesuatu dengan skrip ini. Tampaknya Mail tidak membiarkan Anda mengatur font untuk pesan kosong.

Cara 3: Gunakan TextExpander

Cara ini membutuhkan uang tetapi mungkin memberi Anda apa yang Anda cari. Anda bisa menyiapkan beberapa pintasan TextExpander ($ 34,99 USD di app store) untuk lebar tetap dan tipe normal sehingga Anda dapat beralih bolak-balik dengan mengetik beberapa karakter.

TextExpander

TextExpander akan memungkinkan Anda untuk menyisipkan teks kaya (teks dengan font, warna, gaya, dll.) Cukup buat cuplikan dari tipe Teks yang Diformat, Gambar dan setel font untuk teks yang akan Anda sisipkan. Anda harus memasukkan setidaknya satu karakter luar angkasa agar strategi ini berfungsi.

Anda perlu snippits Anda untuk memasukkan setidaknya karakter spasi untuk memastikan bahwa font akan mengambil.

Samuel Mikel Bowles
sumber
1
Samuel, saya mencari cara untuk membuat teks yang disorot monospace, bukan seluruh pesan. Saya baik-baik saja dengan menggunakan Applescript yang hanya memengaruhi pemilihan aplikasi saat ini. Bisakah Anda merekomendasikan cara untuk memicu applescript dengan pintasan keyboard khusus?
Sam Barnum
1
Sam, masalahnya adalah Mail.app tidak memiliki objek untuk teks yang dipilih. Saya menghabiskan waktu mencoba mencari cara dan saya bisa mengatakan tidak ada cara yang bersih untuk mencapai ini.
Samuel Mikel Bowles
2
Dengan TextExpander, Anda dapat memasukkan konten clipboard ke dalam potongan monospace-diformat. Jadi ketika Anda menyorot, Anda cukup mengetikkan ⌘X dan kemudian singkatan cuplikan Anda untuk menempelkannya kembali sebagai monospace. Tambahkan spasi dengan pemformatan biasa di akhir cuplikan dan Anda tetap bisa mengetik. TextExpander sangat berguna; setiap orang yang menggunakan Mac untuk menyelesaikan sesuatu harus memilikinya.
Trombone ke
1

Apa yang akhirnya saya gunakan secara manual menentukan monospace dalam beberapa teks, lalu Format -> Copy Style (Opsi + Cmd + C) yang menyalin format tetapi bukan teks. Kemudian pilih beberapa teks biasa lainnya dan Format-> Tempel Gaya (Opsi + Cmd + V) yang menetapkan format ini untuk seleksi. Setelah memulai ulang, Anda perlu melakukan ini lagi, dan itu hanya berfungsi untuk satu gaya, tetapi ini memenuhi kebutuhan saya.

Sam Barnum
sumber
0

Salin karakter dengan gaya tertentu:

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

pbcopy -Prefer rtf tidak termasuk data teks biasa, jadi tempel hanya akan berfungsi dalam tampilan teks kaya.


Masukkan karakter dengan gaya tertentu:

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

Gaya tempel:

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
sumber