LiveStamps
一个Sublime Text 3插件,用于将自更新元数据注入任何文档。
详细信息
安装
- 总数 778
- Win 558
- Mac 149
- Linux 71
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
自述文件
Sublime Text 3的LiveStamps
一个Sublime Text 3插件,用于将自更新元数据注入任何文档。
特性
- 元数据 - 将自更新标签插入到注释块标题
- 高亮显示 - 背景、轮廓和/或侧边标记。
- 时间戳 - 钟区/夏令时感知的戳记,具有自定义格式和手动偏移量
- 文件元数据 - 在文件移动/重命名时自动跟踪文件信息
- 最后修改时间 - 跟踪文档最后更新的确切时间
- 用户信息 - 共享文件可以知道谁在什么时候做了什么。
- 校验和 - 将md5散列添加到文件(也支持sha)
- 联系信息 - 当电子邮件地址或网址更改时,自动更新您的项目
- 自定义戳记 - 使用强大的自定义/自动正则表达式匹配轻松创建
- 灵活的输入 - 通过键盘、命令面板或菜单注入戳记
- 易于配置 - 直接从UI切换大多数插件设置
高级功能
- 菜单生成器 - 定义你想要定义的任何戳记,它们只需右键单击即可
- 自定义菜单 - 只需定义一个菜单键来排序您的戳记
- 超级戳记 - 在更大的戳记中使用多个值或其他戳记…非常适合签名...
- 超越元数据 - 使用强大的Python格式执行转换
- 内建帮助 - Python format() & srtftime()实时参考和数据导出到测试新设计
- 灵活的正则表达式 - 每个戳记或全局“自动”正则表达式模式自定义,由您决定!
即将推出
特定语言代码片段和戳记定义!
LiveStamps的一个很好的潜在用途是能够根据您正在处理的文档轻松/自动在不同戳记定义之间切换。包含JavaScript、SASS、PHP代码片段的定义文件可以轻松通过菜单访问。已实施文档类型检测和菜单生成,主要是关于简单地编写定义文件
非常感谢在创建特定于语言的定义文件和使用代码片段方面的帮助!
安装
# Package Control:
1. Open Sublime Text 3
2. cmd+shift+p
3. Package Control: Install Package
4. Search for LiveStamps
# Manual Install:
1. Open Sublime Text 3
2. Sublime Text Menu -> Preferences -> Browse Packages
3. Create folder called LiveStamps
4. Copy the contents of this repo to the folder.
设置用户信息
1. Right-Click -> LiveStamps -> Definitions -> Open
2. Fill in "user_info" key accordingly
3. You may add custom keys here if you like
# Note, By default LiveStamps updates all stamps on save, to disable:
Right-Click -> LiveStamps -> Preferences -> Update On Save
用法
每个LiveStamp都有一个格式化值和原始值。原始值通常用作一次性的静态注入,即频繁使用的变量。但是,当在戳定义中添加正则表达式时,匹配的模式将自动更新。例如,@modified戳会在文档保存时自我更新。
格式化和原始值可以通过以下方式获取
键盘注入
# Generic Usage:
[super] + [alt] + [letter] # Injects a formatted value
[ctrl] + [alt] + [letter] # Injects a raw value
# Example: All Stamps
[super] + [alt] + a # Injects all formatted values
[ctrl] + [alt] + a # Injects all raw values
菜单注入
Right-click -> LiveStamps -> Insert Stamp -> [type]
Right-click -> LiveStamps -> Insert Value -> [type]
命令调板
1. Right-click -> LiveStamps -> Menu -> Build -> Command # Only needed first time
2. [cmd/ctrl] + [shift] + [p]
3. Type LiveStamps to see list of commands, enter to execute.
菜单生成
默认的LiveStamps配置仅使用右键上下文菜单。如果您愿意,可以轻松生成侧边栏/工具/命令调板菜单。当新添加戳定义时,也应该刷新菜单生成,以避免使用过多的键盘快捷键。
# Refresh Existing Menus:
Right-click -> LiveStamps -> Menus -> Refresh
# Generate a Menu:
Right-click -> LiveStamps -> Menus -> Build -> [menutype]
# Open Existing Menu To Manually Edit:
Right-click -> LiveStamps -> Menus -> Open -> [menutype]
戳定义导入/导出和备份
Livestamps支持一个简单的戳版本控制系统,允许您轻松共享或备份自定义戳定义。
可用的版本控制功能
# Backup Existing Stamps & User Info:
Right-Click -> LiveStamps -> Definitions -> Backup
# Restore Previous Stamp Definitions:
Right-Click -> LiveStamps -> Definitions -> Restore -> [definition file]
# To Rename Definitions:
1. Right-Click -> LiveStamps -> Definitions -> Browse
2. Rename any files as you wish (keep .sublime-settings extension)
# To Import or Share Definitions:
1. Right-Click -> LiveStamps -> Definitions -> Browse
2. Copy any stamp definition files to or from this directory to import/export
创建自定义戳
1. Right-Click -> LiveStamps -> Definitions -> Open
2. Custom stamp definitions are defined within the "stamps" key
3. There are a few examples and instructions to get you started here as well
LiveStamp的组成部分
LiveStamps定义为包含戳输出、正则表达式模式、格式化标志和菜单位置的Python字典。定义新戳非常简单,但对于经验丰富的用户来说,一旦熟悉它,就可以变得相当复杂。让我们开始吧!
LiveStamp至少有以下键
"mystamp": {
"value": "LiveStamps rule!",
},
# Output: LiveStamps rule!
键参考
# Stamp Keymap:
"[name]": {
"[menu]" : string,
"[value]" : int|string|list *dict can be used for time offsets*
"[regex]" : string,
"[stamp]" : string,
"[tflag]" : string,
},
# Required Keys:
[name] : The parent key containing the stamp name using snake_case
[value] : A string/int literal, or list of values to be used for injection.
# Optional Keys:
[menu] : Groups a stamp under a submenu in the right-click context menu
[regex] : Regex pattern. Set to auto for docblock. Exclude for static data.
[stamp] : Formatting string. Python format() flags. See injection flags below.
[tflag] : Time Formatting string. Python strftime() flags i.e. "%d-%m-%Y"
戳值
值是戳的核心元数据,可以定义为单个项目或值列表
"mystamp1": {
"value": "zero", # A String Literal
},
# Output: zero
"mystamp2": {
"value": ["zero"], # Single List Item
},
# Output: zero
"mystamp3": {
"value": [1, "two", 3] # Multiple Item Lis:
},
# Output: 1 two 3
魔法值
LiveStamps将生成一些魔法值以帮助您开始。文件元数据、最后修改时间戳和用户信息在刷新时自动创建。
将来还会有更多内容!
# The following stamps are auto generated:
"user" : Gets current user
"checksum" : Gets checksum of the current file (algorithm can be modified)
"extension" : Gets current file extension
"base_name" : Gets current basename
"file_size" : Gets current filesize
"file_name" : Gets current filename
"file_path" : Gets current filepath
"parent_name" : Gets name of parent folder
"parent_path" : Gets path of parent folder
"file_extname" : Gets current filename.extension
"modified" : Current timestamp using "%c" flag, (preferred local time)
# From "user_info" key in LiveStampsDefinitions.sublime-settings:
"author" : "Your name here"
"vendor" : "Your company here"
"email" : "Your email here"
"website" : "Your website here"
"quote" : "A quote you like"
# Custom info may be added to the "user_info" key if you wish:
"location" : "Whitehorse, Yukon",
"fav_color" : "Green",
"gender" : "male"
超级戳
超级戳是由其他戳或值构建的戳。只需将任何“值”键设置为另一个戳的名称,并且PRESTO插件将将其与戳字典中的定义相匹配。在名称前使用前置下划线以获取原始值而不是格式化输出。这对于签名或其他复杂戳来说非常棒!
超级戳:井字棋
SOURCE:
-------
"tic_tac": {
"value": "Tic",
"stamp": "{0} Tac", # Don't worry about the {0}, it's covered next!
},
# Output -> Tic Tac
USING THE SOURCE VALUE:
-----------------------
"tic": {
"value": "_tic_tac", # Leading underscore gets the "value" key of tic_tac
}
# Output -> Tic
USING THE SOURCE STAMP:
-----------------------
"tic_tac_toe": {
"value": "tic_tac", # No underscore gets the formattad "stamp" key of tic_tac
"stamp": "{0} Toe",
}
# Output -> Tic Tac Toe
注入标志
注入标志可以实现强大的格式化和复杂戳设计。如果定义了“戳”键,每个值都将映射到最终输出中的相应注入标志。
注入标志是定义为这样的简单标记
'stamp': "{0} {1} {2}" # Explicit location (stamp values injected by index)
'stamp': "{} {} {}" # Implicit location (stamp values injected sequentially
基本注入
# All these will output: Have you heard? LiveStamps rule! Thanks TundraTech!
# No injection:
"mystamp": {
"value": "Have you heard? LiveStamps rule! Thanks TundraTech!",
},
# Complete injection:
"mystamp": {
"value": "Have you heard? LiveStamps rule! Thanks TundraTech!",
"stamp": "{0}",
},
# Partial injection (explicit):
"mystamp": {
"value": "LiveStamps rule!",
"stamp": "Have you heard? {0} Thanks TundraTech!",
},
# Partial injection (implicit):
"mystamp": {
"value": "LiveStamps rule!",
"stamp": "Have you heard? {} Thanks TundraTech!",
},
多个注入标志
戳可以轻松接受多个值/戳,并且所有值都通过递归生成,允许您构建尽可能深的子依赖项。
使用不同注入标志的“mystamp”的多种输出
SOURCE STAMP
--------------
"mystamp": {
"value": ["zero", "one", "two", "three"],
"stamp": "@mystamp {0} {1} {2} {3}",
},
# Normal Output: Each value is mapped to a Python format() flag:
"stamp" : "@mystamp {0} {1} {2} {3}",
Output : @mystamp zero one two three
# Mixed ordering is allowed and flags can be injected anywhere:
"stamp" : "@mystamp {3} hello {1} {2} world {0}",
Output : @mystamp three hello one two world zero
# Not all values have to be mapped to a flag
"stamp" : "@mystamp {0} {1}",
Output : @mystamp zero one
# It's OK to define more flags used than values to allow for future expansion
"stamp" : "@mystamp {0} {1} {2} {3} {4} {5} {6} {7}",
Output : @mystamp zero one two three
# Using a flag more than once is OK.
"stamp" : "@mystamp {0} {0} {0} {0} {1} {2} {3} {0}",
Output : @mystamp zero zero zero zero one two three zero
# Using no flags is also OK.
"stamp" : "@mystamp ",
Output : @mystamp
使用注入标志的高级格式化
因为每个定义的值都通过Python format()函数进行管道传输,所以这允许LiveStamps将您的表达式扩展到简单的元数据之外。代码片段和强大的转换既快又简单易行。有关可用标志的更多信息,请参阅Python String Format Cookbook。
当构建新戳时,打开format()快速参考以获取帮助
Right Click -> LiveStamps -> Help -> format() Reference
示例:将数字87转换为十进制、十六进制、八进制和二进制的不同基数
"bases": {
"value": 87,
"stamp": "Base conversion: {0:d} - {0:x} - {0:o} - {0:b}",
},
# Output: Base conversion: 87 - 57 - 127 - 1010111
更加复杂:同时进行漂亮的对齐和基数转换。
"formatted_bases": {
"value": [87, "\nDecimal","\nHex", "\nOctal", "\nBinary"],
"stamp": "{1:<10}: {0:d} {2:<10}: {0:x} {3:<10}: {0:o} {4:<10}: {0:b}",
},
Output:
Decimal : 87
Hex : 57
Octal : 127
Binary : 1010111
时间戳
时间格式化遵循Python strftime()函数,因此需要特殊的“tflag”键。有关可用格式化标志的信息,请参阅www.strftime.org
当构建新戳时,打开strftime()快速参考以获取帮助
Right Click -> LiveStamps -> Help -> strftime() Reference
注意“auto”值,它将当前本地时间作为在设置中定义的获取
"date": {
"value": "auto",
"tflag": "%d-%m-%Y",
"regex": "@date.+",
"stamp": "@date {0}",
},
# Output: @date 08-03-2015
"time": {
"value": "auto",
"tflag": "%c",
"regex": "@modified.+",
"stamp": "@modified {0}",
},
# Output: @modified Fri Mar 6 18:21:57 2015
添加时间偏移
时间偏移量可以创建具有不同时区或延迟/提前的时间戳。您可以输入单个偏移量作为原始字符串。当以字符串形式输入偏移量时,必须用冒号“:”或“=”符号作为单位和值之间的分隔符。 分数值会自动处理,并允许负偏移量。
允许的偏移量单位
- "微秒”
- “milliseconds”
- “seconds”
- “minutes”
- “hours”
- “days”
- “weeks”
- “months”
- “years”
偏移量输入语法高度灵活!
# String literal
"value": "microseconds: -21709870.5",
# Timezone support
"value": "America/Whitehorse",
# Multiple offsets in a list
"value": ["years: 10", "weeks: 3"],
# Multiple offsets in a dictionary
"value": {"months": -1.5, "seconds" :30},
格式化偏移量示例
"ahead_ten_hours": {
"value": "hours: 10",
"tflag": "%c",
},
# Output: Wed Apr 1 22:29:05 2015
"Maui time": {
"value": "America/Honolulu",
"tflag": "%c",
"stamp": "Maui time is: {0}",
},
# Output: Maui time is: Wed Apr 1 22:29:05 2015
对于原始时间戳未指定标志
"ten_minutes_thirty_seconds_ago": {
"value": "[minutes=-10, seconds=-30]",
"tflag": ""
},
正则表达式模式:默认DocBlock正则表达式
为了使戳记在每次文档修改时更新,必须提供正则表达式模式。对于docblock标签,为方便起见,可以使用内置模式,但有一个需要注意的情况
出现在docblock戳记之后的内容将被删除,直到出现换行符
如果您在docblock标签内创建戳记,最好为正则表达式键和戳记键简单地使用“auto”值。在以下示例中,默认正则表达式将注入戳记值到“ * @mystamp ”之后出现的任何内容
默认Docblock示例
# Auto defined stamp/value:
"mystamp": {
"value": "Is really cool",
"regex": "auto",
"stamp": "auto",
}
# Which would work great in a docblock header:
/**
* # Anything here is safe
* @mystamp Is really cool # Anything over here is always erased on update
* # Anything here is safe
*/
生成后实际使用的值:(仅供参考)
自定义正则表达式定义
注意!
正则表达式模式是强大的表达式!
在尝试将其应用于主文件之前,请在单独的文档上测试您的正则表达式!一个意外匹配有效代码的表达式会立即替换它。此外,一个打字错误的“过于宽松”的模式可能会在大型文件中替换大量数据,可能造成数据丢失或硬锁...
访问 www.regexr.com 或 www.regex101.com 了解更多关于REGEX模式的信息。
修改默认正则表达式模式
Right-Click -> LiveStamps -> Preferences -> Settings - User
# CAUTION!!! Changes here will have a big, potentially dangerous effect:
"autoregex" : " \\* @{0}.+", # Stamp name injected at flag {0}
"autostamp" : " * @{0} {1}", # Stamp name injected at flag {0}, values at {1}
"separator" : " ", # Separator used for "auto" multi value stamps
当然,高级用户可以使用他们想要的任何正则表达式模式,例如日期匹配。您必须特别小心不要使您的模式过于宽松,并记住转义反斜杠和其他正则表达式敏感字符,因为输入是以JSON格式。
dd-mm-yyyy的自定义正则表达式
# Note the escaped backslashes because input is in JSON.
"date": {
"value": "Date is: ",
"tflag": "%d-%m-%Y",
"regex": "Date is (\\d\\d-\\d\\d-\\d\\d\\d\\d)",
"stamp": "{0}",
},
# Output: Date is 28-03-2015
"Sat Mar 28 21:11:31 2015"的自定义正则表达式
# Matches "%c" format flag
"regex": "(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)(\s|\s\s)(\d|\d\d)\s(\d\d:\d\d:\d\d)\s\d\d\d\d"