为了账号安全,请及时绑定邮箱和手机立即绑定

Visual Studio Code:用于编辑源代码编号和除以二的自定义快捷方式

Visual Studio Code:用于编辑源代码编号和除以二的自定义快捷方式

胡子哥哥 2023-04-25 16:29:59
我不认为有办法做到这一点,但我想我还是会问...可以说我在 python 脚本中有数百个数字,所有数字都需要除以 2。有没有办法创建键盘快捷方式所以我可以突出显示一个数字,按快捷方式,它会自动替换为减半的金额?例如,下面的源代码我需要第一行从0:4to转换0:2,第二行从4:16to转换2:8。我会手动完成,但现在有数百个数字需要转换。Visual Studio 代码是我正在使用的 IDE。test1 = word[0:4]test2 = word[4:16]test3 = word[16:32]test4 = word[32:1024]test5 = word[1024:1086]test6 = word[1086:1900]test7 = word[1900:2000]test8 = word[2000:3000]
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

假设您正在使用 VS 代码作为 IDE 并且正在寻找编辑源代码(而不是任意文本文件),那么在 VS 代码中您可以做的最好的事情可能是使用带有正则表达式的查找替换(确保您选择“使用正则表达式” ,alt+R默认情况下):


搜索word\[(\d+):(\d+)\]并替换为word[$1/2:$2/2],结果将是


test1 = word[0/2:4/2]

test2 = word[4/2:16/2]

test3 = word[16/2:32/2]

test4 = word[32/2:1024/2]

test5 = word[1024/2:1086/2]

test6 = word[1086/2:1900/2]

test7 = word[1900/2:2000/2]

test8 = word[2000/2:3000/2]

这将在运行时评估您需要的输出。


查看完整回答
反对 回复 2023-04-25
?
莫回无

TA贡献1865条经验 获得超7个赞

您可以在替换过程中用表达式的实际值替换数字,扩展名为Regex Text Generator v0.8.0

您首先选择与 DeepSpace 使用的相同正则表达式匹配的所有文本部分,然后使用相同的正则表达式提取每个选择的捕获组,并将它们用作生成文本并可以执行计算的不同正则表达式中的数值。

将使用过的正则表达式作为注释文本放入文件中会很方便。您可以复制部分文件并将其粘贴到扩展的 InputBoxes 中。

# orig regex: word\[(\d+):(\d+)\]
# generate regex: word\[{{=N[1]/2}}:{{=N[2]/2}}\]
  1. word\[(\d+):(\d+)\]在“查找”对话框中粘贴第一个正则表达式并勾选正则表达式按钮 ( .*)。如果在打开“查找”对话框时仍选择正则表达式,它将转义很多字符,只需粘贴正确的版本

  2. 在文档中单击,使焦点不再位于“查找”对话框中

  3. 选择与查找正则表达式匹配的所有字符串:CtrlShift+L

  4. 启动命令:Generate text based on Regular Expression (regex)Ctrl++ShiftP

  5. 将仍在剪贴板中的第一个正则表达式粘贴到Match Original Text Regular Expression输入框中,然后按Enter

  6. 选择生成正则表达式并将其复制粘贴到下一个输入框Generator Regular Expression

  7. 替换结果显示在编辑器中,您可以接受Enter或拒绝Esc

测试文件的结果将是:

test1 = word[0:2]

test2 = word[2:8]

test3 = word[8:16]

test4 = word[16:512]

test5 = word[512:543]

test6 = word[543:950]

test7 = word[950:1000]

test8 = word[1000:1500]

如果您需要定期执行此操作,您可以定义一个键盘快捷键,将使用的正则表达式输入输入框,并允许您在需要时修改它们。


  {

    "key": "ctrl+f10",

    "when": "editorTextFocus",

    "command": "regexTextGen.generateText",

    "args": {

      "originalTextRegex" : "word\\[(\\d+):(\\d+)\\]",

      "generatorRegex" : "word\\[{{=N[1]/2}}:{{=N[2]/2}}\\]",

      "useInputBox" : true

    }

  }

现在使用键盘快捷键完成了步骤 4 .. 7。


查看完整回答
反对 回复 2023-04-25
?
慕容708150

TA贡献1831条经验 获得超4个赞

  1. 查找:word\[(\d+):(\d+)\] 替换:word[$1/2:$2/2]来自@DeepSpace

  2. 查找:\d+/\d+ 查找所有num/num2 [不替换]

  3. CtrlShift+分别L选择所有的num/num2

  4. Emmet: Evaluate Math Expression从命令面板运行(或将其绑定到键绑定)

Emmet 可以做这种数学运算。


查看完整回答
反对 回复 2023-04-25
  • 3 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信