2016-06-16 22 views
1

我想在ST3中引入一種新的編輯模式,類似於Distraction-Free模式,而不修改其設置。在Sublime Text中更改編輯模式3:使用命令或宏切換多個設置

我可以通過設置一些設置,即draw_centered=trueword_wrap=truewrap_width=90

但是達到預期的效果,我想能夠撥動所有這些設置一次(用快捷方式或從命令面板中)。當我切換出此模式時,設置應該恢復到之前的狀態(不一定是默認設置)。

這是我怎麼會在宏設置設置:

[ 
    { "command": "set_setting", "args": {"setting": "word_wrap", "value": true } }, 
    { "command": "set_setting", "args": {"setting": "wrap_width", "value": 80 } }, 
    { "command": "set_setting", "args": {"setting": "draw_centered", "value": true } }, 
    { "command": "set_setting", "args": {"setting": "line_padding_top", "value": 1 } }, 
    { "command": "set_setting", "args": {"setting": "line_padding_bottom", "value": 1 } } 
] 

然而,這將設置爲特定值。我希望能夠將它們切換回以前的狀態。

我該怎麼做,在一個宏或作爲命令?

+0

你需要一個插件爲了這。 – MattDMo

回答

2

Demo


 

保存以下腳本@:
/Packages/Toggle Custom View/toggle_custom_view.py

 

import sublime, sublime_plugin 

STORED_SETTINGS = {} 

class toggle_custom_view(sublime_plugin.TextCommand): 
    def run(self, edit): 

     view  = self.view 
     settings = view.settings() 

     if settings.get("is_widget"): 
      return 

     if view.file_name(): 
      viewID = view.file_name() 
     else: 
      viewID = str(view) 

     global STORED_SETTINGS 
     if not viewID in STORED_SETTINGS: 
      STORED_SETTINGS[ viewID ] = { 
       "custom_view_enabled": True, 
       "word_wrap":   settings.get("word_wrap"   ), 
       "wrap_width":   settings.get("wrap_width"   ), 
       "draw_centered":  settings.get("draw_centered"  ), 
       "line_padding_top": settings.get("line_padding_top" ), 
       "line_padding_bottom": settings.get("line_padding_bottom"), 
      } 
     storedSettings = STORED_SETTINGS[ viewID ] 

     if storedSettings[ "custom_view_enabled" ]: 
      settings.set("word_wrap",   True) 
      settings.set("wrap_width",   80 ) 
      settings.set("draw_centered",  True) 
      settings.set("line_padding_top", 1 ) 
      settings.set("line_padding_bottom", 1 ) 

     else: 
      settings.set("word_wrap",   storedSettings[ "word_wrap"   ]) 
      settings.set("wrap_width",   storedSettings[ "wrap_width"   ]) 
      settings.set("draw_centered",  storedSettings[ "draw_centered"  ]) 
      settings.set("line_padding_top", storedSettings[ "line_padding_top" ]) 
      settings.set("line_padding_bottom", storedSettings[ "line_padding_bottom" ]) 

     storedSettings[ "custom_view_enabled" ] = not storedSettings[ "custom_view_enabled" ] 

 


 

要通過Command Palette > Toggle Custom View執行,保存以下代碼@:
/Packages/Toggle Custom View/Default.sublime-commands

 

[ 
    { 
     "caption": "Toggle Custom View", 
     "command": "toggle_custom_view", 
    }, 
] 

 


 

要通過按Ctrl +超級執行+ Alt + V鍵,保存下面的代碼@:
/Packages/Toggle Custom View/Default.sublime-keymap

 

[ 
    { 
     "keys": ["ctrl+super+alt+v"], 
     "command": "toggle_custom_view", 
    }, 
] 
相關問題