Sublime Text 3:将字体大小重置为自定义字体大小?

时间:2017-10-17 12:47:14

标签: fonts sublimetext3

将以下内容添加到我的键绑定中允许我将Sublime Text 3中的字体大小重置为默认大小:

def lambda_handler(event, context):
    s3 = boto3.client('s3')
    email_from = 'XXXXXXXXX@XXX.com'
    email_to = 'XXXXXXXXX@XXX.com'
    email_subject = 'new event on s3'
    email_body = "File Name :" + event[u'Records'][0][u's3'][u'object'][u'key'] + "\n" + "File Size :" + str(event[u'Records'][0][u's3'][u'object'][u'size']) + "\n" +  "Upload Time :" + event[u'Records'][0][u'eventTime'] + "\n" + "User Details :" + event[u'Records'][0][u'userIdentity'][u'principalId']
    ses = boto3.client('ses')
    ses.send_email(Source = email_from,
                Destination = {'ToAddresses': [email_to,],}, 
                    Message = {'Subject': {'Data': email_subject}, 'Body':{'Text' : {'Data': email_body}}}
         )
    print("Function execution Completed !!!")

但这也会重置我在用户首选项中设置的任何字体大小。例如,默认字体大小为10.当我将以下内容添加到用户首选项时...

{ "keys": ["ctrl+0"], "command": "reset_font_size" }

...然后使用"font_size": 8 重置字体大小,此设置消失,字体大小恢复为默认值10.如何防止此行为?

1 个答案:

答案 0 :(得分:4)

命令increase_font_sizedecrease_font_sizereset_font_sizeDefault插件的font.py包中定义,并通过直接修改值来实现font_size中的Preferences.sublime-settings设置。

特别是,increase_font_sizedecrease_font_size都会修改设置的当前值,而您已经注意到reset_font_size命令将其完全删除,以便将内容恢复为默认值

乍一看,您可以尝试使用set_setting命令而不是reset_font_size,这样您就可以将font_size重置为想要成为默认值的值。

但是,这不会像您预期的那样有效,因为set_setting仅修改当前焦点文件view的设置,而Preferences.sublime-settings文件指定全局设置。因此,您会注意到,上下更改字体大小会在任何地方生效,但重置它只会在当前视图中起作用。

要解决此问题,您需要通过更改Preferences.sublime-settings设置的font_size版本来处理重置为所选的默认字体大小。

一个例子是以下插件,您可以通过从菜单中选择Tools > Developer > New Plugin...,然后用下面的代码替换存根代码并将其保存为Sublime所在位置的python文件来使用。默认为(例如set_default_font_size.py,但只有扩展名很重要):

import sublime
import sublime_plugin


class SetDefaultFontSizeCommand(sublime_plugin.ApplicationCommand):
    def run(self):
        s = sublime.load_settings("Preferences.sublime-settings")

        new_size = s.get("default_font_size", 10)
        s.set("font_size", new_size)

        sublime.save_settings("Preferences.sublime-settings")

完成后,您需要编辑默认首选项并添加default_font_size设置,指定要作为默认字体大小的字体设置,然后修改上面的键绑定以调用{{1}而不是set_default_font_size

此插件只是提取您指定的默认字体大小并使用它更新首选项,这将使其恢复到您希望的值,从而使字体大小一次性变化。

[编辑]

另一个可能的解决方案是以下插件,它通常提供上面引用的reset_font_size命令的一个版本,它将设置设置为全局首选项,而不是仅仅更改当前视图中的设置:

set_setting

要使用此功能,您需要一个如下所示的键绑定(根据需要更改字体大小):

import sublime
import sublime_plugin


class GlobalSetSettingCommand(sublime_plugin.ApplicationCommand):
    def run(self, setting, value):
        s = sublime.load_settings("Preferences.sublime-settings")
        s.set(setting, value)
        sublime.save_settings("Preferences.sublime-settings")

这样做的好处是它不需要您添加额外的设置来提供默认的字体大小。此外,您还可以在其他情况下使用此命令,例如一组上下文菜单项或键绑定,例如,您可以在多个预设大小之间进行选择。