Autocomplete 升华文本2插件以特定格式输入汽车许可评论行

Autocomplete 升华文本2插件以特定格式输入汽车许可评论行,autocomplete,sublimetext2,text-editor,code-snippets,tab-completion,Autocomplete,Sublimetext2,Text Editor,Code Snippets,Tab Completion,我试图在Sublime Text 2中设置一个片段,该片段将扩展到以下内容: /** * @version $Id: ${1:current_file_name.extension} ${2:random_4_digit_number} ${3:YYYY-MM-DD} ${4:time_in_UTC_24} ${5:current_logged-in_user} $ * @author Company http://example.com * @copyright Copyright

我试图在Sublime Text 2中设置一个片段,该片段将扩展到以下内容:

/**
* @version   $Id: ${1:current_file_name.extension} ${2:random_4_digit_number} ${3:YYYY-MM-DD} ${4:time_in_UTC_24} ${5:current_logged-in_user} $
* @author    Company http://example.com
* @copyright Copyright (C) 2007 - ${6:current_year} Company
* @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/
上面的代码段具有游标停止。如果所有数据都可以自动化,那么我就不需要任何光标停止

站点地图如下所示:

${1:current_file_name.extension}

自动粘贴正在编辑的当前文件的名称

${2:随机4位数字}

从0000到9999的随机生成的数字

${3:YYYY-MM-DD}

使用
-
分隔符的当前日期

${4:UTC时间24}

UTC 24小时格式的当前时间,包括使用分隔符的秒数

${5:当前登录用户}

当前登录的用户

${6:本年度}

本年度


如果您有任何建议或帮助,我们将不胜感激。

一个代码片段可能不可能做到这一点,但是我编写了一个插件来实现您想要的功能。在Sublime中,单击工具>新建插件。将示例代码替换为以下代码。将其命名为“add_license_stamp.py”,并将其保存在您的Packages文件夹(而不是Packages/User)中。另外,在keymap文件中添加keybinding。要运行该命令,请将光标放在需要的位置,然后按keybinding键:

键绑定: 插件: (注意:python要求代码后面有一个空行)

将“BobCo”替换为您的公司名称。我不确定获取当前用户名的最佳方法,我使用了以下问题:。他们说它与主要的操作系统兼容。如果不做一些类似我做的公司名称。并按用户手动设置。另外,我不知道UTC 24小时格式是什么。但我只是用了24小时制的时间

编辑


我将now()改为utcnow()以获取utc日期/时间。我添加了日期/时间格式。我将zfill(4)添加到随机数,如果小于4位,则用零填充。您可以高亮显示当前戳记并点击键绑定以更新它。您还可以在保存时自动替换,但超出当前范围。您必须使用正则表达式来查找当前的戳记。然后在保存时激活脚本,而不是运行。

UTC 24小时代表“协调世界时”,是指格林威治标准时间(GMT)的更准确的方式。UTC是英文和法文首字母缩写词(CUT和TUC)之间的折衷。例如,我在22:34 UTC添加此注释,将其保存在Packages目录中是可以的,但是,如果我想将其保存在Packages的子文件夹中,则它不起作用。如果我想把它放在一个子目录中,比如
Packages/addlicense Stamp
,以保持Packages目录的整洁,我如何让Sublime Text 2识别插件?我正在研究它。但是,我想你不能直接得到utc时间。您必须从计算机时间转换。我在此处看到一个utcnow:。似乎正在工作。增强的@d_rail代码允许项目特定的配置,并在每次保存文件时添加版权信息:
{ "keys": ["ctrl+shift+9"], "command": "add_license_stamp" }
import sublime, sublime_plugin
import os
import datetime
import random
import getpass

''' Add license stamp
/**
* @version   $Id: ${1:current_file_name.extension} ${2:random_4_digit_number} ${3:YYYY-MM-DD} ${4:time_in_UTC_24} ${5:current_logged-in_user} $
* @author    Company http://example.com
* @copyright Copyright (C) 2007 - ${6:current_year} Company
* @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/
'''


class AddLicenseStampCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        company_name = "BobCo"
        company_site = "http://bobco.com"

        file_path = self.view.file_name()
        file_name = os.path.basename(file_path)
        year = datetime.datetime.utcnow().strftime("%Y")
        date_time = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S UTC")
        random_number = str(random.randrange(0000, 9999)).zfill(4)
        user = getpass.getuser()

        license = "/**\n"
        license += "* @version   $Id: " + file_name + " " + random_number + " " + date_time + " " + user + " $\n"
        license += "* @author    " + company_name + " " + company_site + "\n"
        license += "* @copyright Copyright (C) 2007 - " + year + " " + company_name + "\n"
        license += "* @license   http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only\n"
        license += "*/\n"

        self.view.replace(edit, self.view.sel()[0], license)