如何在不同长度的文本周围创建//的注释块

我很好奇,是否有办法围绕文本自动创建这些块?当前在VS / VSCode项目中工作。

/////////////////////////////////////////////////////////
///////////////////// Demo Text /////////////////////////
/////////////////////////////////////////////////////////

由于文本长度不同,这可能真令人讨厌。

谢谢!

power1234power 回答:如何在不同长度的文本周围创建//的注释块

这是一个vscode解决方案。您将需要一些宏扩展才能连续运行多个命令。在这里我以多命令为例。参见https://marketplace.visualstudio.com/items?itemName=ryuta46.multi-command

settings.json:

{
  "command": "multiCommand.createTextBlock2",// "interval": 350,"sequence": [

    "cursorEnd","cursorHomeSelect",{
                 // pad with equal number of /'s before and after text

      "command": "editor.action.insertSnippet","args": {
        "snippet": "////////////////////////////// $TM_SELECTED_TEXT //////////////////////////////"
      }
    },{
      "command": "editor.action.insertSnippet","args": {
        "name": "Create a Text Block",}
    },"cursorDown"
  ]
},

摘要(在您的摘要文件之一中):

"Create a Text Block": {
  "prefix": "tb","body": [

    "/////////////////////////////////////////////////////////","${TM_SELECTED_TEXT/(.*)(.{57})(\\1).*/$2/g}","/////////////////////////////////////////////////////////",],"description": "create a text block"
},

还有一个用于绑定宏的键绑定(keybindings.json)。

{ 
  "key": "alt+b",// whatever binding you wish
  "command": "multiCommand.createTextBlock","when": "editorTextFocus && !editorReadonly"
},

解释宏:

每行上有57个/,没有任何文本,所以这就是我用的-选择一些金额。

宏的第1步:选择文本并将其填充在文本的开头和结尾,并带有许多/。为了使正则表达式发挥神奇作用,文本前后必须等于/,我用了大约30左右。

第2步:插入了代码段。

有趣的部分。保留包含正则表达式(.*)(.{57})(\\1).*的文本行的中间57个字符\\1是在第一个捕获组中捕获的所有内容的后向引用-因此捕获组1和3的长度相同。

捕获组2将是我们的文本,并由等号/包围(如果我们在进行正则表达式转换之前添加了等号/)。正则表达式末尾的.*用于处理文本中的奇数/偶数字符。

regex101 demo - middle 25 characters

demo of create a text block

关于类似的问题,请参见How to pad out line to certain length using regex replace and snippets,有关将不同的文本行填充为相等的长度。

,

那必须通过插件/扩展来完成,这本来就不可能。

本文链接:https://www.f2er.com/3159553.html

大家都在问