3

現在のOSに基づいてfont_face設定を切り替えるプラグインを作成しようとしています。Dropbox を使用してすべての設定を同期し、職場では Mac を使用し、自宅では Windows を使用しています。私は機能するプラグインを作成したと信じています (ただし、これはプラグインと python での最初の試みであるため、完璧ではないかもしれません!) が、Sublime Text 2 の起動時にプラグインを実行しようとすると問題が発生します。

私は一見インターネットの端まで検索しましたが、「起動時にプラグインを実行する」という記事を 1 つも見つけることができませんでした。それについて書くこと。

これが私のコードです:

import sublime
import sublime_plugin


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

    if sublime.platform() == "osx":
        s.set("font_face", 'Courier')
    else:
        s.set("font_face", 'Consolas')

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

これはうまく機能しますが、プログラムを起動するたびに手動で呼び出す必要があります。

次のようにして、プラグインをロードするとすぐに実行することができましたが、デフォルトおよびユーザー設定が実際にロードされる前に実行されたようで、その結果、他のすべての設定が消去されます。

import sublime
import sublime_plugin

s = sublime.load_settings("Preferences.sublime-settings")

if sublime.platform() == "osx":
    s.set("font_face", 'Courier')
else:
    s.set("font_face", 'Consolas')

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

set_timeout() メソッドを使用することを検討しましたが、それは本当にハックのようです。

これをより具体的なプラグインに拡張して、Windows と OSX の完全な構成を作成し、現在の OS に基づいて常に正しくロードできるようにしたいと考えています。起動時に自動的に実行することが重要です。

Preferences (Windows).sublime-settingsまた、 /Packages/User フォルダーにandを作成しようとPreferences (OSX).sublime-settingsしましたが、取得されないようです。他の人もこの問題に気づいています: http://www.sublimetext.com/forum/viewtopic.php?f=2&t=5135

このプラグインを起動時に実行する方法についての考えは大歓迎です。どうもありがとう。

4

1 に答える 1