我可以为sublime片段添加日期时间吗?

时间:2012-08-09 08:29:12

标签: sublimetext2

我想创建一个会添加文件注释的代码段,但我想让代码段自动创建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>

7 个答案:

答案 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片段插入日期时间。