2013-04-22 8 views
13

में कस्टम मेनू जोड़ना में कस्टम मेनू आइटम को कैसे जोड़ें SublimeText 2सब्लिमे टेक्स्ट

कोई विचार ??
मुझे लगता है कि Main.sublime-menu फ़ाइल है लेकिन यह नहीं पता कि इसे कैसे संपादित किया जाए।

धन्यवाद!

उत्तर

15

* .sublime-menu फ़ाइल बस JSON है। आप अपनी उपयोगकर्ता निर्देशिका में एक Main.sublime-menu बना सकते हैं और इसे अन्य मेनू प्रविष्टियों के साथ विलय कर दिया जाएगा। Main.sublime-menu फ़ाइलों को देखने के लिए फायदेमंद हो सकता है तृतीय पक्ष प्लगइन्स। ये आमतौर पर बहुत कम होते हैं, इसलिए प्रत्येक प्रविष्टि में परिभाषित करने के लिए आपको कुछ चीजों को समझना आसान हो सकता है।

संपादित

आप एक मनमाना फ़ाइल के साथ नोटपैड खोलने के लिए एक प्लगइन के रूप में निम्न का उपयोग कर सकते हैं।

import sublime 
import sublime_plugin 
import subprocess 
import threading 
class OpenNotepadCommand(sublime_plugin.TextCommand): 
    def run(self, edit, filename=None): 
     th = NotepadThread(filename) 
     th.start() 

class NotepadThread(threading.Thread): 
    def __init__(self, filename=None): 
     self.filename = filename 
     threading.Thread.__init__(self) 

    def run(self): 
     if self.filename is not None: 
      subprocess.call("notepad.exe %s" % self.filename) 
     else: 
      subprocess.call("notepad.exe") 

जब आप मेनू आइटम बना रहे हैं तो कमांड और तर्कों के लिए निम्न की तरह कुछ उपयोग करें।

{ 
    "command": "open_notepad", 
    "args": { "filename": "<the absolute path here>"} 
} 
+0

' डिफ़ॉल्ट 'पैकेज निर्देशिका में अंतर्निहित आधिकारिक मुख्य (मेनूबार) और प्रासंगिक (राइट-क्लिक) मेनू शामिल हैं। मेरा मानना ​​है कि साइडबार मेनू को कस्टमाइज़ करना भी संभव है - साइडबार एन्हांसमेंट प्लगइन देखें। । । – lawlist

+0

@skuroda Google खोज रहा है। कुछ भी उपयोगी नहीं मिल सकता है। क्या कोई जानता है कि एक प्लगइन कैसे बनाया जाए जो सब्लिमे टेक्स्ट से फ़ाइल चला सके। मैं उससे अपना रास्ता प्रबंधित करूंगा। धन्यवाद – Avi

+0

@AviAryan आप क्या चलाने की कोशिश कर रहे हैं? प्लगइन्स बस पाइथन हैं ताकि आप नई प्रक्रियाओं को बनाने और जो चाहें निष्पादित करने के लिए उपप्रोसेसर मॉड्यूल का उपयोग कर सकें। आप [बिल्ड सिस्टम] (http://docs.sublimetext.info/en/latest/file_processing/build_systems.html) या [SublimeREPL] (https://github.com/wuub/SublimeREPL] पर एक नज़र डालना चाहेंगे)। – skuroda

9

यदि आप चाहते हैं तो आसान विकल्प केवल एक आदेश चलाएं। अपने संकुल/उपयोगकर्ता निर्देशिका के अंदर एक फ़ाइल Context.sublime-मेनू बनाएँ, और जोड़ने निम्नलिखित:

[ 
    { "caption": "<Your caption here>", "command": "exec", "args": {"cmd": ["<your cmd name>", "<arg1>", "<arg2>", <...>]} } 
] 

उदाहरण: संदर्भ मेनू है कि बस dir को चलाने के लिए एक मेनू आइटम जोड़ना:

[ 
    { "caption": "List files in current dir", "command": "exec", "args": {"cmd": ["dir"]} } 
] 
+0

इस उत्तर ने मुझे बहुत मदद की, क्योंकि इस विषय पर बहुत कुछ है जो वास्तव में इस सरल ऑपरेशन को कवर नहीं करता है। – sugardaddy

+0

हालांकि, इसे अपने विंडोज एसटी 2 पर काम करने के लिए, मुझे इसे तत्वों में से एक (कैप्शन और कमांड इत्यादि के लिए एक भाई) के रूप में जोड़ना पड़ा था ... "आईडी": "बस कुछ नहीं अनन्य LikeActionName" तो मेरा कोड यहाँ है RegReplace प्लगइन के लिए एक अनुक्रम चलाने के लिए ... '{ \t" id ":" cfmlToCfScript ", \t" शीर्षक ":" CfScript को CFML ", \t" कमांड ":" reg_replace ", \t" आर्ग ": { \t \t" प्रतिस्थापन ": [ \t \t \t "operation1" \t \t \t, "operation2" \t \t] \t \t, "find_only": झूठी \t} 0,123,} ' – sugardaddy

+0

यदि आपने प्लगइन के लिए निर्देशिका बनाई है (यानी। 'पैकेज/प्लगइन_नाम') उस निर्देशिका में sublime-menu फ़ाइल डालें और जेएसओएन के 'कमांड' मान में प्लगइन के कमांड नाम का उपयोग करें। उदा। '{" कैप्शन ":" प्लगइन desc "," कमांड ":" plugin_cmd "}' – steve

संबंधित मुद्दे