Как получить текущую позицию каретки?

Я написал простой плагин ST2, который должен просто вставить метку времени в текущую позицию каретки. Однако я не могу узнать, как получить текущую позицию.

У меня

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

Что должно быть pos?

Ответ 1

Попробуйте

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

Это получает начальную точку текущего выбора (если ничего не выбрано, начало и конец выбора - текущая позиция курсора).

Если вы хотите, чтобы это работало с несколькими выделениями, вам нужно повторить все выборки, возвращенные self.view.sel():

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