我为我的sublime创建了一个简单的.py插件,它只输出一个带前缀的时间戳,我想在每个光标位置插入它。
插件:
import datetime
import sublime, sublime_plugin
class TimestampcondencedCommand(sublime_plugin.TextCommand):
def run(self, edit):
val = "%s" % (datetime.datetime.now().strftime("am_func_%Y%m%d%H%M%S"))
self.view.insert(edit, self.view.sel()[0].begin(), val)
密钥绑定:
{ "keys": ["ctrl+shift+z"], "command": "timestampcondenced"}
它有效,但当我点击ctrl+shift+z
时,只有第一个光标受到影响,这很可惜。
我想为我的所有游标拥有它,我该如何解决?
答案 0 :(得分:1)
原因是[0]
会返回所有选择的列表,但您的代码只显式使用第一个(view.sel()[0]
中的import datetime
import sublime, sublime_plugin
class TimestampcondencedCommand(sublime_plugin.TextCommand):
def run(self, edit):
val = "%s" % (datetime.datetime.now().strftime("am_func_%Y%m%d%H%M%S"))
for sel in self.view.sel():
self.view.insert(edit, sel.begin(), val)
)。
为了插入所有光标位置,您只需要遍历所有选择:
{{1}}