2015-05-26 41 views
0

我正在致力於Sublime Text 3插件與todo.txt todo文件一起使用,這些文本文件是平面文本文件。我無法編寫正確適用於選定區域的插件命令。我希望能夠將日期(或x)預先添加到選定的行(每行是一項任務)。這是命令之前的行。寫入Sublime Text 3插件將文本預先插入選定文本塊

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 

是否有一個選擇是穩健既multicursor 高亮操作方式?

這是我的插件的一部分。

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 

回答

3

看來adjustBy是問題所在。嘗試設置:

 adjustBy += len(prefix[0]) + 1 

的問題是,循環不復位的兩種不insert之間的每個線的位置。