2012-10-10 17 views
11

मैंने एक साधारण एसटी 2 प्लगइन लिखा है जो वर्तमान कैरेट स्थिति पर एक टाइमस्टैम्प डालना चाहिए। हालांकि, मैं यह पता लगाने में असमर्थ हूं कि वर्तमान स्थिति कैसे प्राप्त करें।मैं वर्तमान कैरेट स्थिति कैसे प्राप्त करूं?

मैं

def run(self, edit): 
    timestamp = "%s" % (datetime.datetime.now().strftime("%Y-%m-%d %H:%M")) 
    pos = ??? 
    self.view.insert(edit, pos, timestamp) 

क्या pos होना चाहिए है?

उत्तर

21

pos = self.view.sel()[0].begin() 

यह वर्तमान चयन के प्रारंभ बिंदु (अगर कुछ भी नहीं चुना जाता है, शुरू करने और चयन के अंत वर्तमान कर्सर स्थिति कर रहे हैं) हो जाता है के साथ की कोशिश करो।

आप इसे एक से अधिक चयन के साथ काम करना चाहते हैं, तो आप self.view.sel() द्वारा लौटाए गए सभी चयन पर पुनरावृति करने के लिए है:

for pos in self.view.sel(): 
    self.view.insert(edit, pos.begin(), timestamp) 
+0

यह काम करता है। बहुत बढ़िया! – kasperhj

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