Mac OS Xのキーボードショートカットを使用して、選択したテキストに等幅フォントファミリーを割り当てます


8

私はたくさんのテクニカルメールを書いていて、コードビットに等幅フォントを使いたいです。テキストを強調表示し、apple-Tを押し、お気に入りのリストからフォントを選択して、フォントウィンドウを閉じます。キーボードショートカットを使用して、現在選択されているテキストに特定のフォントを適用する方法はありますか?理想的には、これはOS全体に適用されますが、それが不可能な場合は、単一のアプリ(Mail.app)にのみ使用できます。


どのバージョン?⌘-TはMail 3.6で動作します。

@trashgod現在の選択範囲のフォントを指定したフォントに設定するために使用できる単一のキーボードショートカットを探しています。おそらく何らかのマクロです。

1
これはAppleScriptで行うのはかなり簡単なことであり、そのスクリプトにキーを割り当てるだけです。今夜誰かが来ないなら、明日何かを鞭打ちます。
レモンジンガー、2011

回答:


2

私はこれを非常に長い間探していました。

ようやく、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での選択」であることを確認します。

ここに画像の説明を入力してください

短いデモhttps://youtu.be/y8NJT52APRQ


1

システム全体でFontsパネルをスクリプト化する方法はわかりませんが、Mail.appで等幅フォントにすばやくアクセスする方法をいくつか紹介します。

方法1:テキストメッセージを計画する

Mail.appの[設定]> [フォントと色]に移動し、[テキストメッセージに固定幅フォントを使用する]チェックボックスをオンにします

ここに画像の説明を入力してください

今、あなたはあなたが簡単にヒットすることができ、固定幅フォントを使用したいメッセージにいるとき:Command- Shift- Tあなたはあなたの選択の固定幅フォントとあなたの標準フォント(プレーンテキストメッセージ&リッチテキスト)を切り替えることができます。

この方法の欠点は、受信者がフォントを固定幅フォントに設定していない場合、メッセージが意図したとおりに表示されない可能性があることです。

方法2:Applescriptでフォントを設定する

これを行う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では空のメッセージのフォントを設定できないようです。

方法3:TextExpanderを使用する

この方法はお金がかかりますが、あなたが求めているものをあなたに与えるかもしれません。いくつかのTextExpander(アプリストアでは$ 34.99 USD)のショートカットを固定幅と通常のタイプに設定して、数文字を入力することで前後に切り替えることができます。

TextExpander

TextExpanderを使用すると、リッチテキスト(フォント、色、スタイルなどが設定されたテキスト)を挿入できます。書式付きテキスト、画像タイプのスニペットを作成し、挿入するテキストのフォントを設定するだけです。この戦略を機能させるには、少なくともスペース文字を含める必要があります。

フォントが確実に処理されるようにするには、少なくともスペース文字を含むスニペットが必要です。


1
サミュエル、メッセージ全体ではなく、強調表示されたテキストを等幅にする方法を探しています。現在のアプリの選択にのみ影響するApplescriptを使用してもかまいません。カスタムのキーボードショートカットでAppleScriptをトリガーする方法をお勧めできますか?
Sam Barnum

1
サム、問題はMail.appに選択したテキストのオブジェクトがないことです。私は時間をかけて方法を見つけようとしましたが、これを達成するための明確な方法はないと言えます。
サミュエル・ミケルボウルズ'19

2
TextExpanderを使用すると、クリップボードの内容をモノスペース形式のスニペットに挿入できます。したがって、強調表示するときは、⌘Xを入力してからスニペットの省略形を入力して、モノスペースとして貼り付けます。スニペットの最後に通常のフォーマットのスペースを追加すると、入力を続けることができます。それ以外の場合、TextExpanderは非常に便利です。とにかくMacを使って物事を成し遂げる人なら誰でもそれを所有するべきだ。
75回目のトロンボーン

1

最終的に使用したのは、一部のテキストで手動でモノスペースを指定し、次に[ フォーマット]-> [スタイルをコピー](Option + Cmd + C)で、フォーマットはコピーされますがテキストはコピーされませんでした。次に、他のプレーンテキストを選択し、[ フォーマット]- > [スタイルの貼り付け](Option + Cmd + V)を選択して、このフォーマットを選択に割り当てます。再起動後、これをもう一度行う必要があります。これは1つのスタイルでのみ機能しますが、これは私のニーズを満たしています。


0

特定のスタイルで文字をコピーします。

echo "<span style=\"font:14px 'Monaco'\">&nbsp;</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'\">&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

スタイルを貼り付け:

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.