如何在Sublime Text 2中插入递增数字的列?

118
text
text
text
text

编辑后,这些文本成为

1 text
2 text
3 text
4 text

在Notepad++中使用列编辑功能非常容易,但我不知道如何在Sublime Text 2中实现相同的功能。


6
也许这个问题有用:https://dev59.com/M2Uq5IYBdhLWcg3wV_Ei - Riccardo Marotti
这是一个重复的问题,与@RiccardoMarotti链接的问题相同。 - dbn
1
我推荐使用Text Pastry插件。我在相关问题中发表了相关内容。 - aanton
2
不错的插件!我基于@Riccardo Marotti的答案编写了一个插件,https://github.com/yulanggong/IncrementSelection - yulanggong
8个回答

133
Text Pastry插件做得非常好。它提供了插入数字语法
使用CMD+SHIFT+L(Sublime默认)选择多行:
   text|
   text|
   text|
   text|

将光标移动到您想要的位置:
 | text
 | text
 | text
 | text

使用Text Pastry插入数字,按下CMD+ALT+N(在Windows中为CTRL+SHIFT+ALT+N),然后输入1 space 1 space 0
 1| text
 2| text
 3| text
 4| text

其中 1 space 1 space 0 的意思是:

  • 1 开始的整数
  • 递增 1
  • 填充前导零 0

在 Windows 或 Linux 机器上,将 CMD 替换为 CTRL


12
对我而言,Text Pastry输入框就像一个文本框。当我看到上方的[1][1][0]时,我以为它表示打110,但是这样做并不能获得你想要的结果。你需要输入带有空格的1 1 0。在使用kbd标签时,是否需要包括空格?我只是想知道使用kbd标签时1101 1 0之间的视觉区别。 - AnnanFay
抱歉,我不知道如何输入键盘空格。但是你现在明白了吗? :) - q9f
2
正确答案由@Nicoolasens提供。无需插件。 - Dennis

105

复制此帖子https://dev59.com/M2Uq5IYBdhLWcg3wV_Ei#64083371

您想在所选行中有一个数字,但不是相同的数字。例如,您选择了5个光标,希望写1 2 3 4 5。

选择您的5个光标(也许可以使用快捷键ctrl + shift + L
enter image description here

ctrl + shift + P并选择算术 enter image description here

因为您有5个光标,它提供1 2 3 4 5
enter image description here enter image description here

如果您想要,您可以更改迭代步骤
enter image description here

或从比1更大的数字开始
enter image description here

添加偶数
enter image description here


2
这个答案看起来很简单。最好提一下如何选择多个光标。在Windows中使用CTRL+ALT+UP/DOWN。谢谢! - Tintu Thomas
13
太棒了 - 我很高兴我浏览过所有插件建议。 - p-mcgowan
1
我已经使用Sublime Text很长时间了,我一直都可以用它...非常感谢! - Paul Carlton
1
完美的答案,无需插件。 - caub
1
这真是太棒了!我一直讨厌不得不安装插件来自动完成这些琐碎的任务...有趣的是,所涉及的步骤数量与插件相同,甚至在某些情况下还更少,哈哈。 - Fr0zenFyr
显示剩余2条评论

48
对于这个特定的情况,您可以使用增量选择包。只需在每行开头拥有多个光标时按下Ctrl+Alt+I(Mac:Command+Control+I)。 除了melinath的回答,这里是一个示例:

首先需要安装Package Control。安装这两个东西不会超过30秒。

步骤:

  1. 安装Package Control
  • 打开命令面板:Ctrl+Shift+P(Mac:Command+Shift+P)。
  • 输入Install Package Control并点击安装。
  1. 安装增量选择包。
  • 再次打开命令面板。
  • 输入Package Control: Install Package,点击并等待一段时间。
  • 输入Increment Selection,点击安装。
  1. 在每行开头添加行号。
  • 使用Ctrl+A(Mac: Command+A)选择所有行。
  • 使用Ctrl+Shift+L(Mac: Command+Shift+L)将选择更改为多行。
  • 按下Home(Mac: Command+)跳转到每行的开头。
  • 使用Ctrl+Alt+I(Mac: Command+Control+I)进行增量选择。

结果:

increment-selection.gif


其他关于增量选择的示例

增量选择还可以替换数字,给数字添加前导零,递增字母,按步长递增等等。

   [1] text    [1] text    [1] ->  1| text  2| text  3|
   [a] text    [a] text    [a] ->  a| text  b| text  c|
  [01] text   [01] text   [01] -> 01| text 02| text 03|
[05,3] text [05,3] text [05,3] -> 05| text 08| text 11|
[5,-1] text [5,-1] text [5,-1] ->  5| text  4| text  3|

提示:方括号[]表示选择,竖线|表示插入符。

推荐类似插件

  • 选择评估器:使用Ctrl+Shift+M(Mac: Command+Shift+M)来评估选定的数学表达式。

3
这个解决方案在 Sublime Text 3.2.2 build 3211 中也可行。完全改变了游戏规则,无需打开电子表格即可生成一系列数字。 - VanBantam
1
你节省了我的时间。赞! - NomanJaved

25

我发现这个插件非常优秀。我之前手动生成SVG图案,需要逐步增加几个绘图位置。但是这个插件为我完成了所有的计算和操作。<path d="M330,0C220,63.7,0,191,0,191"/><path d="M330-2C220,61.7,0,189,0,189"/> <path d="M330-_C220,__.7,0,___,0,___"/> - davidcondrey

3

使用 Emmet 包尝试以下操作:

  {$ text${newline}}*4

1
非常好!顺便说一下,如果您想将计数器基值更改为3(例如3、4、5、6),请用"$@3"替换第一个"$"。如果要反转计数器(例如4、3、2、1),请将第一个"$"替换为"$@-"。如果您想将计数器反转回3(例如6、5、4、3),请用"$@-3"替换第一个"$"。如果您想填充零(例如001、002、003、004),请用"$$$"替换第一个"$"。请参见https://docs.emmet.io/abbreviations/syntax/#item-numbering - Rockallite
这非常实用!使用{$ => $,${newline}}*12创建具有键和值的数组,存储一年中的月份。 - Craig London

3

在我找到这个帖子之前,我的简单解决方法是打开电子表格编辑器,在那里生成序列,然后复制,回到subl,在需要的行上扩展光标并粘贴。

这种方法可以应用于任何允许您扩展(克隆)光标的文本编辑器。


2
您可以使用插件ConyEdit来实现此功能,使用其命令行cc.abl '#1 '在您想要的内容前添加。

-1

@Nicoolasens 这个答案很棒!只是补充一个细节:在 macOS 上,您可以按照以下步骤将光标放在每行的末尾:

  1. 使用 command+A 选择所有行;
  2. 使用 command+shift+L 在每行后面放置光标。

请不要将“谢谢”作为答案。一旦您拥有足够的声望,您就可以投票支持有用的问题和答案。- 来自审核 - Dan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接