sublimetext2

Can i add date time for sublime snippet?


I want to create a snippet that will add a file comment, but I want the snippet to create the DateTime automatically. Can a sublime snippet do that?

<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>

Solution

  • Tools > New Plugin

    Paste this:

    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") } )
    

    Save it as ~/Library/Application Support/Sublime Text 2/Packages/User/add_date.py

    Then, in Preferences > Key Bindings - User , add:

    {"keys": ["ctrl+shift+,"], "command": "add_date" },
    {"keys": ["ctrl+shift+."], "command": "add_time" },
    

    You can customize the argument passed to strftime to your liking.