ctrl+shift+p filters: :st2 :st3 :win :osx :linux
浏览

插入数字

jbrooksuk, FichteFoll 所有

Sublime Text插件,用于插入序列。支持字母数字和十六进制,以及位操作!

详细信息

安装

  • 总计 36K
  • Win 21K
  • Mac 11K
  • Linux 4K
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日 6月22日
Windows 3 6 1 2 2 7 6 5 6 6 4 4 3 10 4 5 0 2 3 1 1 6 5 1 4 10 3 5 6 3 4 3 3 6 6 5 7 5 4 10 7 4 6 6 4 7
Mac 3 4 0 0 1 5 2 0 1 0 0 2 5 2 3 5 1 0 2 2 4 2 3 0 0 1 1 3 2 4 1 1 2 2 2 1 2 1 1 7 1 1 1 4 0 0
Linux 0 2 2 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 1 2 0 1 2 0 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0

读我

源代码
raw.​githubusercontent.​com

插入数字

这是一个Sublime Text插件,可在多个选择项中插入(连续)数字或使用复杂的表达式语法表达式来修改选择项的内容。

安装

软件包控制

安装的最简单方法是使用软件包控制。它在列表中列出为插入数字

  1. 使用Ctrl+Shift+P或菜单项工具 → 命令面板...打开命令面板
  2. 选择软件包控制:安装软件包
  3. 查找插入数字并按Enter

手动设置

或者,您可以克隆此存储库到Sublime Text的签名包文件夹中。

[!注意]

要找到软件包文件夹,请调用菜单 > 首选项 > 浏览软件包..

OSX

#!/usr/bin/env bash
cd ~/Library/Application\ Support/Sublime\ Text/Packages/
git clone https://github.com/SublimeText/InsertNums "Insert Nums"

Linux

cd ~/.config/sublime-text/Packages
git clone https://github.com/SublimeText/InsertNums "Insert Nums"

Windows

错误:不支持语言“dos”
cd "%APPDATA%\Sublime Text\Packages"
git clone https://github.com/SublimeText/InsertNums "Insert Nums"

用法

  • WindowsLinuxCtrl+Alt+N
  • OSX⌘+⎇+N

一个输入面板打开,实时预览您当前格式字符串。如果您关闭面板(例如,通过按Esc),则更改将被撤销。如果您更愿意不使用此实时预览,可以通过按住Shift键来禁用它。

<start>:<step>的格式插入一个字符串并按Enter。这两个都可以省略,并默认为1(意味着1:1)。

然后,对于每个选择区域,插入的数字(从开始)将通过步长递增。但还有更多!

命令

  • prompt_insert_nums

    打开一个输入面板,并实时预览,如上所述。参数preview可以指定在编辑格式字符串时是否显示插入数字的实时预览。默认为true

  • insert_nums

    这是基本命令。使用带有format参数的命令,并在需要频繁使用查询的情况下将其绑定到键盘快捷键。

使用数字的用法

插入数字支持整数和小数,分别作为起始值步长,也支持负数。这意味着您可以在4个选择上使用1:.4并获得以下内容

1.0
1.4
1.8
2.2

此外,您可以使用任意的Python表达式生成您的数字,例如位标志。请参考示例

有关使用特定格式的信息,请参阅高级用法部分。

使用字母的用法

插入数字还可以插入字母。只需使用a作为起始值,或者将a更改为您希望开始的任何字符。步长仅接受整数,因为在字母表中没有表示字符分数。

引入alpha序列的一个副作用是您可以生成看似随机但实际上并不随机的序列。例如,使用a:12345将在三个选择生成以下内容

a
rfv
ajmq

这里发生的事情仅仅是下一个字母的序列根据步长来推进。

如果您希望当达到最后一个字符(z)时插入数字回绕,请添加~w。因此,a:12345~w将生成以下内容

a
v
q

有关更多选项,请参阅以下高级用法部分。

表达式模式

除了插入数字或字母外,此模式还采用选择值并允许您使用Python表达式修改它。下面将详细介绍。

高级用法(插入)

完整的语法是:<start>:<step>~<format>::<expr>@<stopexpr><reverse>,相应的分隔符仅在实际提供以下部分时需要。每个部分本身都是可选的(默认为1:1),但您要使用alpha模式必须提供字母起始值。

以下是一个抽象示例,展示了包含所有可选部分的语法(用[]表示)

numbers: [<start>][:<step>][~<format>][::<expr>][@<stopexpr>][!]
alpha:   <start>[:<step>][~<format>][@<stopexpr>][!]

详细语法定义:format_syntax.txt

  • 起始值

    • 使用数字(可选):根据Python的语法规范(可选的先导符号-+)的十进制整数或浮点数。
    • 使用字母(必选):从字母表中(azAZ)的要么小写要么大写的ASCII字符序列。
  • 步长(可选)

    • 使用数字:根据Python的语法规范(可选的先导符号-+)的十进制整数或浮点数。
    • 使用字母:一个可选的先导符号(-+)的十进制整数。
  • 格式(可选)

    • 使用数字:Python的格式特定迷你语言中的格式字符串(对于允许的类型做了少量和不重要的调整)。
    • 包含字母:类似于 包含数字,但只针对字符串的简化版本。这仅包括 [[填充]对齐][宽度] 语法,此外还可以接受末尾的 w 字符(参见上方)。
  • expr(可选)

    • 仅数字:一个有效的 Python 表达式,可以根据您的意愿修改值。如果指定,然后应用 格式字符串。以下是可以使用的变量列表

      • s:由 step(在格式查询中指定,默认为 1)确定的值
      • n:选择项数量
      • i:仅为 ogni 迭代计数器;从 0 开始,每次循环增加 1
      • _:表达式之前的当前值(start + i * step
      • p:之前评估值的结果(未格式化);第一个值是 0
      • mathrandomreitertools:为您预导入的有用模块

      注意:返回值不一定要是数字类型,您还可以生成字符串、元组或布尔值。

  • stopexpr(可选)

    有效 Python 表达式,返回 true 或 false(在布尔上下文中)的值。从理论上讲,这可以是任何值。您可以使用与 expr 相同的值,并添加以下内容

    • c:由表达式评估的当前值(未格式化)或如果没有指定表达式,则与 _ 相同

    这忽略了选择项数量,这意味着您也可以选择比选择项更多或更少的值。在从单个选择生成数字时特别有用。 - 在处理停止表达式时,如果选择项数量多于生成的数字,则将删除所有剩余选择项的文本。- 如果生成的数字多于选择项,则所有进一步的数字都由换行符("\n")连接,并添加到最后一个选择项中。这可能是第一个选择项,如果只有一个的话。

  • reverse(可选)

    必须是 ! 并以逆序填充区域。

高级用法(表达式)

除了 插入数字 插入模式外,还可以指定修改当前选择项的方式。语法如下

[<cast>]|[~<format>::]<expr>[@<stopexpr>][!]

有关详细语法规范,请参阅: format_syntax.txt

使用 | 管道显示将当前选择项传递到以下表达式的含义。stopexpr 的行为与插入模式略有不同,并且当前值 _ 被调整。

  • cast(可选)

    可以是 sifb,表示将选择项中的字符串转换为相应的类型,如果可能的话。否则将显示错误消息。

    • sstrunicode(在 ST2 中)(默认)
    • iint
    • ffloat
    • bbool
  • 格式(可选)

    与插入模式相同。

  • expr

    与插入模式相同,不同之处在于 _ 代表当前选择项的(转换后的)值。

  • stopexpr(可选)

    用法与插入模式相同,但 _ 对于表达式模式,但是效果略有不同

    • 不能生成比选择项更多的值。
    • 如果您生成的值少于选择项,剩余的选择项将保持不变。在表达式中返回 "" 以清空它们。
  • reverse(可选)

    必须是 ! 并导致选择项被解析 区域被逆序填充。

示例

基本插入

  • 1

    1
    2
    3
    4
    5
    6
    
  • -10:2~3

    -10
     -8
     -6
     -4
     -2
      0
      2
      4
    
  • 11:11~+4

    +11
     +22
     +33
     +44
     +55
     +66
     +77
     +88
     +99
    +110
    

使用格式插入

  • 0.2:.002~-<5(见 g 类型(默认)在 Python 格式文档

    0.2--
    0.202
    0.204
    0.206
    0.208
    0.21-
    0.212
    
  • 。2:2e-3~6.4f

    0.2000
    0.2020
    0.2040
    0.2060
    0.2080
    0.2100
    0.2120
    
  • 8:8~#010x!

    0x00000038
    0x00000030
    0x00000028
    0x00000020
    0x00000018
    0x00000010
    0x00000008
    

表达式插入

  • 0~#06x::1<<_

    0x0001
    0x0002
    0x0004
    0x0008
    0x0010
    0x0020
    0x0040
    0x0080
    0x0100
    
  • ::i**2

    1
    4
    9
    16
    25
    36
    
  • 序列迭代 itertools.product(['a', 'b', 'c'], ['x', 'y', 'z']))[i]

    ('a', 'x')
    ('a', 'y')
    ('a', 'z')
    ('b', 'x')
    ('b', 'y')
    ('b', 'z')
    ('c', 'x')
    ('c', 'y')
    ('c', 'z')
    

Alpha 插入

  • z:25~wz:-1~w

    z
    y
    x
    w
    v
    u
    t
    
  • aa:10000~ ^6 (这里,| 表示可视化尾随空格的光标)

    aa  |
     nuq  |
     acpg |
     arjw |
     bgem |
     buzc |
     cjts |
    

停止表达式

注意:假设在 Before 中,每行都有一个选择范围已被选中。

  • Before

    1
    2
    3
    4
    5
    

    @_>3

    1
    2
    3
    
  • Before

    1
    

    ~02@p==10~02@_>10~02@i==10

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    

表达式模式

注意:假设在 Before 中,每行都有一个选择范围已被选中。

  • Before

    1
    2
    3
    4
    5
    

    i|_+p

    1
    3
    6
    10
    15
    

    i|p+3 if i!= 0 else _!

    27
    24
    21
    18
    15
    
  • Before

    pointfloat    ::=  {integer}? \. \d+ | {integer} \.
    exponentfloat ::=  (?:{integer} | {pointfloat}) [eE] [+-]? \d+
    float         ::=  {pointfloat} | {exponentfloat}
    numeric       ::=  {integer} | {float}
    signednum     ::=  [+-]? {numeric}
    

    |re.sub(r' +', ' ', _)

    pointfloat ::= {integer}? \. \d+ | {integer} \.
    exponentfloat ::= (?:{integer} | {pointfloat}) [eE] [+-]? \d+
    float ::= {pointfloat} | {exponentfloat}
    numeric ::= {integer} | {float}
    signednum ::= [+-]? {numeric}
    

以及更多...

贡献者

许可

MIT - http://jbrooksuk.mit-license.org