我需要一个文本编辑器,做数学操作,所有选定的文本



假设我有一个像下面这样的文档

(001 [bla bla bla
bla bla bla])
(002 [bla
bla bla])
(003 [bla bla bla
bla bla bla])
(004 [bla
bla bla])
...
(199 [bla bla bla bla
bla])

注意开括号里的三位数整数。是否存在能够将特定整数添加到所有选定整数的文本编辑器。在崇高的文本中,我知道如何在选择第一个开括号a后按ctrl+d选择所有这些整数,然后按一次右箭头键,然后按三次shift和右箭头键来选择所有这些整数。在选择之后,崇高文本中是否有一个函数可以对这些数字做一个简单的加法。输入+10,这样整数将是011,012,013,…, 219年。如果sublime text没有这个功能,还有文本编辑器有吗?

附带条件是,它不是严格意义上的文本编辑器,当然也不是SublimeText,我的实用程序text蒸馏器将非常容易地为您完成此操作:

  1. 添加一个新的"计算算术表达式"配方与匹配'd+'和算术表达式'1+$0'(改变'1'到任何数字你想添加。)
  2. 使用"pad text of left"填充'd+'至宽度为3
  3. 使用'replace text'将'('替换为'(00'
  4. 使用'replace text'将'('替换为'(0'

如果您的输入比这更复杂,您可能需要使用更花哨的正则表达式匹配。

按照下面的注释,下面是你需要做的事情来匹配像'C11-001'这样的字符串…

应该使用匹配表达式'C11-(?d+)'用算术替换'48+$1'(注意在<out之间没有空格,但是没有它我无法使标记工作)

这可能看起来有点神秘,所以我将尝试解释各个部分....

  • C11-匹配您所关心的字符串的第一部分,并且意味着'裸'数字集将不匹配且不更改
  • 'C11-(?d+)'表示与其中的项匹配的内容将被计数为组1(组0是包括C11-在内的整个内容)。这就是为什么算术表达式现在显示为$1而不是$0。
  • 奇怪的'?'项并不像您想象的那样是正则表达式的一部分。相反,它是一种特殊的语法,意味着括号内的匹配项是一个名为组的。(这是标准的。net正则表达式语法。)TextDistil假定您称为'out'的组是它应该用算术项的结果替换的组。如果'out'组缺失,它将使用$0,这是整个匹配,这就是为什么我没有在前面的例子中使用它。

综上所述,我们匹配所有看起来像C11-001等的字符串,然后将连字符后的数字输入算术表达式,然后将该表达式的结果替换回'out'组,该组恰好也是连字符后的数字。

与前面的示例一样,如果您希望生成的文本在连字符后面恰好使用3个数字,则可能需要添加一些额外的步骤。有多种方法可以做到这一点,但我建议简单地通过添加一些标准文本替换来强制执行,例如....

  • 'C11-(dd d)' '替换为C11-0$1以将2位数字提高到3位
  • 'C11-(d d)' '替换为C11-00$1将1位数字增至3位

SynWrite编辑器支持Python脚本。因此,只需进行多次选择,并编写一个Python插件,可以更改所选的数字。或者你可以写一个插件来改变数字w/out选择。

  • API文档
  • 论坛教程

最新更新