私はたくさんのテクニカルメールを書いていて、コードビットに等幅フォントを使いたいです。テキストを強調表示し、apple-Tを押し、お気に入りのリストからフォントを選択して、フォントウィンドウを閉じます。キーボードショートカットを使用して、現在選択されているテキストに特定のフォントを適用する方法はありますか?理想的には、これはOS全体に適用されますが、それが不可能な場合は、単一のアプリ(Mail.app)にのみ使用できます。
私はたくさんのテクニカルメールを書いていて、コードビットに等幅フォントを使いたいです。テキストを強調表示し、apple-Tを押し、お気に入りのリストからフォントを選択して、フォントウィンドウを閉じます。キーボードショートカットを使用して、現在選択されているテキストに特定のフォントを適用する方法はありますか?理想的には、これはOS全体に適用されますが、それが不可能な場合は、単一のアプリ(Mail.app)にのみ使用できます。
回答:
私はこれを非常に長い間探していました。
ようやく、Alfredと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での選択」であることを確認します。
システム全体でFontsパネルをスクリプト化する方法はわかりませんが、Mail.appで等幅フォントにすばやくアクセスする方法をいくつか紹介します。
Mail.appの[設定]> [フォントと色]に移動し、[テキストメッセージに固定幅フォントを使用する]チェックボックスをオンにします
今、あなたはあなたが簡単にヒットすることができ、固定幅フォントを使用したいメッセージにいるとき:Command- Shift- Tあなたはあなたの選択の固定幅フォントとあなたの標準フォント(プレーンテキストメッセージ&リッチテキスト)を切り替えることができます。
この方法の欠点は、受信者がフォントを固定幅フォントに設定していない場合、メッセージが意図したとおりに表示されない可能性があることです。
これを行う2番目の方法は、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では空のメッセージのフォントを設定できないようです。
この方法はお金がかかりますが、あなたが求めているものをあなたに与えるかもしれません。いくつかのTextExpander(アプリストアでは$ 34.99 USD)のショートカットを固定幅と通常のタイプに設定して、数文字を入力することで前後に切り替えることができます。
TextExpanderを使用すると、リッチテキスト(フォント、色、スタイルなどが設定されたテキスト)を挿入できます。書式付きテキスト、画像タイプのスニペットを作成し、挿入するテキストのフォントを設定するだけです。この戦略を機能させるには、少なくともスペース文字を含める必要があります。
フォントが確実に処理されるようにするには、少なくともスペース文字を含むスニペットが必要です。
特定のスタイルで文字をコピーします。
echo "<span style=\"font:14px 'Monaco'\"> </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'\"> </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