2017-10-17 26 views
2

Ajouter ce qui suit à mes raccourcis clavier me permet de réinitialiser la taille de la police Sublime Text 3 à la taille par défaut:Sublime Text 3: Réinitialiser la taille de police à la taille de police personnalisée?

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

Mais cette option pour réinitialiser également toute taille de la police que j'avais mis dans mes préférences de l'utilisateur. Par exemple, la taille de la police par défaut est 10. Lorsque j'ajoute ce qui suit à mes préférences utilisateur ...

"font_size": 8 

... puis remis à zéro ma taille de police avec ctrl+0, ce paramètre disparaît et la taille de la police à la valeur par défaut de 10. Comment puis-je empêcher ce comportement?

Répondre

0

Les commandes increase_font_size, decrease_font_size et reset_font_size sont définis dans le paquet Default dans le plugin font.py, et ils fonctionnent en modifiant directement la valeur du paramètre font_size dans Preferences.sublime-settings.

En particulier, increase_font_size et decrease_font_size modifient tous deux la valeur actuelle du paramètre, alors que, comme vous l'avez remarqué, la commande reset_font_size le supprime entièrement afin de rétablir les valeurs par défaut. À première vue, vous pouvez essayer d'utiliser la commande set_setting au lieu de reset_font_size, ce qui vous permettrait de réinitialiser le font_size à la valeur qui doit être la valeur par défaut.

Cependant, cela ne fonctionnera pas comme prévu car set_setting ne modifie les paramètres que pour le fichier actuellement ciblé view, tandis que le fichier Preferences.sublime-settings spécifie les paramètres globaux. En tant que tel, vous remarquerez que changer la taille de la police de haut en bas prendrait effet partout, mais la réinitialiser ne fonctionnerait que dans la vue actuelle.

Pour contourner cela, vous devez gérer la réinitialisation à la taille de police par défaut choisie en modifiant la version Preferences.sublime-settings du paramètre font_size. Un exemple de ce serait le plugin suivant, que vous pouvez utiliser en sélectionnant Tools > Developer > New Plugin... dans le menu, puis en remplaçant le code stub par le code ci-dessous et en l'enregistrant comme un fichier python à l'emplacement par défaut de Sublime (par exemple set_default_font_size.py, mais seulement l'extension est importante):

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") 

une fois cela fait, vous souhaitez modifier vos préférences par défaut et ajouter un paramètre default_font_size qui spécifie le paramètre de police que vous voulez être votre taille de la police par défaut, modifiez votre liaison de clé ci-dessus pour appeler set_default_font_size au lieu de reset_font_size.

Ce plugin extrait simplement la taille de police par défaut que vous avez spécifiée et met à jour les préférences, ce qui la remettra à la valeur que vous souhaitez, faisant que la taille de la police change d'un coup.


[modifier]

Une autre solution potentielle à ce serait le plugin suivant, qui fournit plus généralement une version de la commande set_setting référencé ci-dessus qui définira le cadre dans vos préférences globales au lieu de simplement changer les paramètres de la vue actuelle:

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") 

Pour l'utiliser, vous auriez besoin d'une liaison clé comme ce qui suit (avec la taille de police a changé selon le cas):

{ 
    "keys": ["ctrl+0"], "command": "global_set_setting", 
    "args": { 
     "setting": "font_size", 
     "value": 12 
    } 
}, 

L'avantage ici est qu'il ne vous oblige pas à ajouter un paramètre supplémentaire pour fournir la taille de police par défaut. De plus, vous pouvez également utiliser cette commande dans d'autres cas, par exemple un ensemble d'éléments de menu contextuel ou des raccourcis clavier qui vous permettent de choisir entre plusieurs tailles prédéfinies.