我在VScode中有一个多行代码段。问题是,TM_LINE_NUMBER给出了触发代码段的行号,我需要将该行号增加1,使其等于实际所在的行号。
"Console_Log_Test": {
"prefix": "clg",
"body": [
"//Debugging (remove)",
"console.log('Line #${TM_LINE_NUMBER}');"
]
},
我该怎么做?
答案 0 :(得分:0)
至少有以下两个选项:
"Console_Log_Test": {
"prefix": "clg",
"body": [
"//Debugging (remove)",
"console.log('Line #${1:${TM_LINE_NUMBER}}');"
// "console.log('Line #${TM_LINE_NUMBER}');"
]
}
通过以上至少选择了行号,您可以轻松地自行更改。
更有趣的是将其制作为“ 宏”,它将完全完成您想要的操作。
您将需要multi-command extension之类的东西。
将以上代码段更改为:
"Console_Log_Test": {
"prefix": "clg",
"body": [
"console.log('Line #${TM_LINE_NUMBER}');"
]
}
所以现在该代码段仅打印其中带有TM_LINE_NUMBER
的行。
在您的用户设置中:
"multiCommand.commands": [
{
"command": "multiCommand.lineNumber",
"sequence": [
{
"command": "type",
"args": {
"text": "//Debugging (remove)\n"
}
},
{
"command": "editor.action.insertSnippet",
"args": {
// "langId": "csharp",
"name": "Console_Log_Test"
}
}
]
}
现在,该代码段实际上已在所需的行号上触发。
在您的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"
。