我想创建一个会添加文件注释的代码段,但我想让代码段自动创建DateTime。一个崇高的片段可以做到吗?
<snippet>
<content><![CDATA[
/**
* Author: $1
* DateTime: $2
* Description: $3
*/
]]></content>
<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<tabTrigger>/header</tabTrigger>
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<scope>source.css,source.js,source.php</scope>
</snippet>
答案 0 :(得分:90)
工具&gt;新插件
粘贴:
import datetime, getpass
import sublime, sublime_plugin
class AddDateCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.run_command("insert_snippet", { "contents": "%s" % datetime.date.today().strftime("%d %B %Y (%A)") } )
class AddTimeCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.run_command("insert_snippet", { "contents": "%s" % datetime.datetime.now().strftime("%H:%M") } )
将其另存为〜/ Library / Application Support / Sublime Text 2 / Packages / User / add_date.py
然后,在首选项&gt;键绑定 - 用户,添加:
{"keys": ["ctrl+shift+,"], "command": "add_date" },
{"keys": ["ctrl+shift+."], "command": "add_time" },
您可以自定义传递给strftime
to your liking的参数。
答案 1 :(得分:12)
Nachocab,这是一个很好的答案 - 并且帮助了我很多。我为自己创建了一个略有不同的版本
〜/ Library / Application Support / Sublime Text 2 / Packages / User / datetimestamp.py:
import datetime, getpass
import sublime, sublime_plugin
class AddDateTimeStampCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.run_command("insert_snippet", { "contents": "%s" % datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") } )
class AddDateStampCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.run_command("insert_snippet", { "contents": "%s" % datetime.datetime.now().strftime("%Y-%m-%d") } )
class AddTimeStampCommand(sublime_plugin.TextCommand):
def run(self, edit):
self.view.run_command("insert_snippet", { "contents": "%s" % datetime.datetime.now().strftime("%H:%M:%S") } )
偏好设置&gt;关键绑定 - 用户:
{"keys": ["super+alt+ctrl+d"], "command": "add_date_time_stamp" },
{"keys": ["super+alt+d"], "command": "add_date_stamp" },
{"keys": ["super+alt+t"], "command": "add_time_stamp" }
没有你的帮助,我无法做到这一点!我现在在谷歌搜索了大约一个小时,最后你的回答得到了加强!非常感谢!
答案 2 :(得分:4)
您可能需要查看InsertDate包:https://github.com/FichteFoll/InsertDate
在自述文件中,您可以找到如何使用macros to insert timestamps into snippets的示例。
答案 3 :(得分:2)
您可以使用Sublime Text 2的SMART Snippets插件。
使用SMART Snippets,您现在可以使用Python动态创建 片段
我为另一个question做了一些研究,我很确定这个插件可以解决你的问题。
答案 4 :(得分:1)
我只是通过一个简单的插件和元数据文件(.tmPreference文件)来实现此功能,但我不知道这是否有效。有办法,
1。创建一个.tmPreference文件,将一些要使用的变量放入代码段中。 有一个示例,您可以将内容保存在 Packages /User/Default.tmPreference
中(
2。创建一个插件,该插件将在加载插件时更新.tmPreference文件中的shell变量。
)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
3。使用您在.tmPreference文件中定义的shell变量。
<plist version="1.0">
<dict>
<key>name</key>
<string>Global</string>
<key>scope</key>
<string />
<key>settings</key>
<dict>
<key>shellVariables</key>
<array>
<dict>
<key>name</key>
<string>TM_YEAR</string>
<key>value</key>
<string>2019</string>
</dict>
<dict>
<key>name</key>
<string>TM_DATE</string>
<key>value</key>
<string>2019-06-15</string>
</dict>
<dict>
<key>name</key>
<string>TM_TIME</string>
<key>value</key>
<string>22:51:16</string>
</dict>
</array>
</dict>
</dict>
</plist>
答案 5 :(得分:0)
它在https://github.com/ngocjr7/sublime-snippet-timestamp中解决了
将所有文件复制到Sublime文本的Packages / User目录。
根据需要配置sublime-snippet文件(对于c ++为cpp_template.sublime-snippet,对于python为py_template.sublime-snippet)
现在,您可以创建一个简单的代码段,并且每次按Command + s时,日期都会更新。 command + s仍然具有保存文件的功能。
说明
由于代码段不支持动态变量,因此我在Default.tmPreferences中使用静态变量DATE定义,并在我们要创建代码段时更新此变量。
我使用插件(命令)updatetm更新Default.tmPreferences中的DATE。
我希望日期和时间自动更新或至少是被动更新。因此,我为keytrockes命令+ s添加了一个名为updatetm命令的函数。为此,我使用另一个插件chain.py来调用键盘映射上的多个命令(updatetm命令和默认命令(保存)。在Default(OSX).sublime-snippet文件中定义的键盘映射。
答案 6 :(得分:-4)
此post on the official ST forum回答了您的问题,并提供了一个紧密的选择。
总之,不,您目前无法从ST片段插入日期时间。