编辑:试试这个片段:
"latex labels": {
"prefix": "_ll",
"body": [
"\\section{$1}",
"\\label{sec:${2:${1/(\\w*)((æ)|(ø)|(å)|(é)|(\\s+)|([^a-zA-Z0-9_ ]))/${1:/downcase}${3:+ae}${4:+oe}${5:+aa}${6:+e}${7:+_}/gi}}}",
],
"description": "Transform to latex labels"
},
如果您有更多丹麦语字符,则必须单独添加它们 - vscode 不支持/asciify
转换。
上一个答案:
我真的不认为你可以在一个正则表达式中做到这一点。这意味着正常的代码段将不起作用。不过,宏可以运行任意数量的片段转换。
使用宏扩展多命令将其放入您的 settings.json 中:
"multiCommand.commands": [
{
"command": "multiCommand.latexLabelTransform",
"sequence": [
"cursorHomeSelect",
"editor.action.clipboardCopyAction",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": "${TM_SELECTED_TEXT/(æ)|(ø)|(å)/${1:+ae}${2:+oe}${3:+aa}/gi}"
}
},
"cursorHomeSelect",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": "${TM_SELECTED_TEXT/(.*)/${1:/downcase}/}"
}
},
"cursorHomeSelect",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": "${TM_SELECTED_TEXT/[^a-z0-9 ]//g}"
}
},
"cursorHomeSelect",
{
"command": "editor.action.insertSnippet",
"args": {
"snippet": "\\section {$CLIPBOARD} \\label{sec:${2:${TM_SELECTED_TEXT/\\s/_/g}}}"
}
}
]
}
]
还有一些键绑定:
{
"key": "alt+d",
"command": "extension.multiCommand.execute",
"args": { "command": "multiCommand.latexLabelTransform" }
},
如果你从文本开始,例如Ørne og Mus!
看下面的演示:

如演示中所示,选择转换后的部分。在触发宏之前光标位于文本末尾。\section {yourTextHere}
如果需要的话,我也可以让它开始工作。
我试图让它作为一个常规片段工作,但它似乎不是一种在单个转换中获得你想要完成的多个转换的方法。
让我知道这是否适合您。