我正在尝试使用以下标记包装一堆数据。
例如:
link1
link2
link3
link4
link5
我希望它们每个都用以下标签包裹。
<url>
<loc>link1</loc>
<lastmod>2020-01-16T22:59:45+00:00</lastmod>
<priority>0.80</priority>
</url>
<url>
<loc>link2</loc>
<lastmod>2020-01-16T22:59:45+00:00</lastmod>
<priority>0.80</priority>
</url>
....
我想知道使用Emmet代码是否可以做到这一点。任何帮助,将不胜感激。
另一种选择是使用常规代码段。这是针对vscode的:
"link snippet": {
"prefix": "link",
"body": [
"<url>"
"<loc>$TM_SELECTED_TEXT</loc>",
"<lastmod>2020-01-16T22:59:45+00:00</lastmod>", // if date is fixed ahead of time
// use below if date is dynamic at creation time
"<lastmod>${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}T${CURRENT_HOUR}:${CURRENT_MINUTE}:${CURRENT_SECOND}+00:00</lastmod>"
"<priority>0.80</priority>",
"</url>",
""
],
"description": "Wrap link with url, etc."
},
然后,由于您需要将3个命令链接在一起以简化此操作,因此请使用诸如multi-command之类的宏扩展。pu这到您的settings.json:
"multiCommand.commands": [
{
"command": "multiCommand.expandLink",
"sequence": [
"editor.action.insertCursorAtEndOfEachLineSelected",
"cursorHomeSelect",
{
"command": "editor.action.insertSnippet",
"args": {
"name": "link snippet",
}
},
]
}
]
在分别选择您的每行之后,这将触发该代码段。要触发宏本身,您需要一个键绑定(在keybindings.json中):
{
"key": "shift+alt+l",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.expandLink" },
},
相当多的设置,但是这只是触发所有操作的一个绑定。演示: