在Mac OS X中使用键盘快捷键将等宽字体系列分配给所选文本


8

我写了很多技术电子邮件,并且喜欢在代码位上使用等宽字体。突出显示文本,单击apple-T,从收藏夹列表中选择我的字体,然后关闭字体窗口。有没有一种方法可以使用键盘快捷键将给定的字体应用于当前选定的文本?理想情况下,它将在整个操作系统范围内,但是如果不可能,我可以仅将其用于单个应用程序(Mail.app)


什么版本的?Mail-T可在Mail 3.6中使用。

@trashgod我正在寻找一个键盘快捷键,可以用来将当前选择的字体设置为指定的字体。可能是某种宏。

1
对于AppleScript而言,这似乎很简单,然后只需为该脚本分配一个密钥即可。如果今晚有人不来,我明天会鞭策。
lemonginger 2011年

Answers:


2

我一直在寻找这样做很长一段时间。

最终,在Alfred和Highlight CLI工具的帮助下,我最终获得了对我来说非常有用的东西。

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

确保添加了快捷方式触发器__SHORTCUT__,并且参数为“ OSX中的选择”:

在此处输入图片说明

简短演示https://youtu.be/y8NJT52APRQ


1

我不知道在系统范围内编写“字体”面板的脚本的方法,但是这里有一些方法可以快速访问Mail.app中的等宽字体。

方法1:计划短信

转到Mail.app的首选项>字体和颜色,然后选中“对纯文本消息使用定宽字体”复选框

在此处输入图片说明

现在,当你在你想用你可以简单地打了等宽字体的消息:Command- Shift- T你可以将所选的固定宽度字体和你的标准字体(纯文本消息和富文本)之间切换。

此方法的缺点是,如果接收方尚未将其字体设置为固定宽度的字体,则他们可能看不到预期的消息。

方法2:使用Applescript设置字体

第二种方法是使用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

您必须使用此脚本将内容设置为某些内容。邮件似乎不允许您为空消息设置字体。

方法3:使用TextExpander

这种方式要花钱,但可能会给您带来好处。您可以为固定宽度和常规类型设置几个TextExpander(在应用商店上为$ 34.99 USD)快捷方式,以便您可以通过键入几个字符来回切换。

TextExpander

TextExpander将允许您插入富文本(带有字体,颜色,样式等设置的文本)。只需创建一个格式文本,图片类型的代码片段,然后为您要插入的文本设置字体。您需要至少包含一个空格字符,此策略才能起作用。

您需要在代码片段中至少包含一个空格字符,以确保该字体可以使用。


1
塞缪尔(Samuel),我正在寻找一种使突出显示的文本(而不是整个消息)等宽的方法。我可以使用仅会影响当前应用程序选择的Applescript。您能推荐一种使用自定义键盘快捷键来触发AppleScript的方法吗?
山姆·巴纳姆

1
山姆,麻烦是Mail.app没有所选文本的对象。我花了一些时间试图找到一种方法,我可以说没有干净的方法可以完成此任务。
塞缪尔·米克尔·鲍尔斯

2
使用TextExpander,您可以将其内容插入到等宽格式的代码段中。因此,当您突出显示时,只需键入⌘X,然后输入代码段缩写即可将其粘贴为等宽字体。在代码段的末尾添加一个具有常规格式的空格,您可以继续输入。TextExpander在其他方面非常有用;每个使用Mac完成工作的人都应该拥有它。
第75长号

1

我最终使用的是手动在某些文本中指定等宽字体,然后使用格式->复制样式(Option + Cmd + C)来复制格式,而不复制文本。然后选择其他一些纯文本和“ 格式”->“粘贴样式”(Option + Cmd + V),以将此格式分配给所选内容。重新启动后,您需要再次执行此操作,它仅适用于一种样式,但这满足了我的需求。


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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.