我正在使用Sublime Text 3插件来处理todo.txt todo文件,这些文件是平面文本文件。我在编写适用于所选区域的插件命令时遇到问题。我希望能够将日期(或x
)添加到选择的行(每行是一个任务)。以下是命令之前的行。
Task one
Task two
这是所需的输出。
2015-05-26 Task one
2015-05-26 Task two
我的命令只有在我使用multicursor时才会输出但。如果我选择区域(即通过点击并拖动或CTRL-l
突出显示),那么我会得到混乱的输出。
2015-05-262015-05-26 Task one
Task two
有没有办法对多重和突出显示的选项进行操作?
这是我插件的一部分。
import sublime, sublime_plugin, time, re
class DateTaskCommand(sublime_plugin.TextCommand):
def run(self, edit):
for selectedRegion in self.view.sel():
selectedLines = self.view.lines(selectedRegion)
adjustBy = 0
for line in selectedLines:
insertPoint = line.begin() + adjustBy
prefix = [time.strftime('%Y-%m-%d'), '']
self.view.insert(edit, insertPoint, ' '.join(prefix))
adjustBy += 1
答案 0 :(得分:3)
似乎adjustBy
是问题所在。尝试设置:
adjustBy += len(prefix[0]) + 1
问题是循环不会重置两个insert
之间每行的位置。