2012-10-10 21 views
11

Ich habe ein einfaches ST2-Plugin geschrieben, das nur einen Zeitstempel an der aktuellen Caret-Position einfügen sollte. Ich kann jedoch nicht herausfinden, wie ich die aktuelle Position bekommen kann.Wie bekomme ich die aktuelle Caret-Position?

Ich habe

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

Was soll pos sein?

Antwort

21

mit

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

Versuchen Sie den Startpunkt der aktuellen Auswahl Dies wird (wenn nichts ausgewählt ist, Beginn und Ende der Auswahl ist die aktuelle Cursorposition).

Wenn Sie wollen, dass diese mit Mehrfachauswahl arbeiten, müssen Sie auf alle Auswahlen von self.view.sel() zurücklaufen:

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

Es funktioniert. Genial! – kasperhj

Verwandte Themen