我在Preferences - Browse Packages - User(folder)
中创建了这个whatever.py文件import sublime, sublime_plugin, time
class InsertDatetimeCommand(sublime_plugin.TextCommand):
def run(self, edit):
sel = self.view.sel();
for s in sel:
self.view.replace(edit, s, time.strftime( '%H:%M %d/%m/%Y' ))
然后
in preferences - keybindings - User,添加以下行:
{ "keys": ["f5"], "command": "insert_datetime"}
这按预期按F5工作,我可以插入日期时间,但是当我这样做时,这个日期时间被选中,当我按下Enter进入换行符时,它被删除。您知道在上面的代码中我应该更改哪个部分,而不是在按F5后选择所有日期时间字符串吗?
答案 0 :(得分:1)
我建议使用view.insert
在选择的第二端添加字符串:
class InsertDatetimeCommand(sublime_plugin.TextCommand):
def run(self, edit):
sel = self.view.sel()
for s in sel:
self.view.insert(edit, s.b, time.strftime( '%H:%M %d/%m/%Y' ))
replace
的问题在于您要用Selection
替换区域。因此,在运行命令后,选择时间字符串,以便在您点击Enter
时将其替换。您可以执行sel.clear()
之类的操作或修改每个区域以进行修复。
<强>更新强>
正如OdatNurd所说,在这种情况下使用s.a
会很困惑。使用s.b
会更加一致。