如何在vscode代码段中增加变量(如行号)

时间:2018-11-14 17:15:42

标签: visual-studio-code

我在VScode中有一个多行代码段。问题是,TM_LINE_NUMBER给出了触发代码段的行号,我需要将该行号增加1,使其等于实际所在的行号。

"Console_Log_Test": {
  "prefix": "clg",
  "body": [
    "//Debugging (remove)",
    "console.log('Line #${TM_LINE_NUMBER}');"
  ]
},

我该怎么做?

1 个答案:

答案 0 :(得分:0)

至少有以下两个选项:

"Console_Log_Test": {
      "prefix": "clg",
      "body": [
          "//Debugging (remove)",
          "console.log('Line #${1:${TM_LINE_NUMBER}}');"
          // "console.log('Line #${TM_LINE_NUMBER}');"
      ]
}

通过以上至少选择了行号,您可以轻松地自行更改。

更有趣的是将其制作为“ ”,它将完全完成您想要的操作。

  1. 您将需要multi-command extension之类的东西。

  2. 将以上代码段更改为:

    "Console_Log_Test": {
    
      "prefix": "clg",
      "body": [
          "console.log('Line #${TM_LINE_NUMBER}');"
      ]
    }
    

所以现在该代码段仅打印其中带有TM_LINE_NUMBER的行。

  1. 在您的用户设置中:

    "multiCommand.commands": [
    
    {
      "command": "multiCommand.lineNumber",
      "sequence": [
        {
          "command": "type",
          "args": {
            "text": "//Debugging (remove)\n"
          }
        },
        {
          "command": "editor.action.insertSnippet",
          "args": {
            // "langId": "csharp",
            "name": "Console_Log_Test"
          }
        }
      ]
    }
    

现在,该代码段实际上已在所需的行号上触发。

  1. 在您的keybindings.json中:

    {
      "key": "ctrl+alt+l",
      "command": "multiCommand.lineNumber"
    },
    

现在 Ctrl - Alt - L 完全可以完成您想做的事情。设置工作有点繁琐,但是却是一种非常有效的学习方法。

[编辑]

我想知道是否有一种方法可以使一些 emmet 数学起作用,而且令人惊讶的是,

使用此代码段:

 "log line number on second line": {
      "prefix": "clg",
      "body": [
          "//Debugging (remove)",
          "console.log('Line #${TM_LINE_NUMBER}"
      ]
  },

该代码段除了最后一个');

以外,都包含所有内容

现在此宏:

{
    "command": "multiCommand.lineNumber",
    "sequence": [
      {
        "command": "editor.action.insertSnippet",
        "args": {
          "name": "log line number on second line"
        }
      },
      "editor.emmet.action.incrementNumberByOne",
      {
        "command": "type",
        "args": {
          "text": "');\n"
        }
      }
    ]
  },

将起作用!行号将增加一,然后将');\n添加到该行的末尾。

您可以使用"editor.emmet.action.evaluateMathExpression"代替incrementNumberByOne命令来进行更高级的数学运算。

要在行号上添加10,请使用

"console.log('Line #${TM_LINE_NUMBER}+11"
在代码段中

,在多命令宏中用"editor.emmet.action.evaluateMathExpression"代替"editor.emmet.action.incrementNumberByOne"