一天来,我一直试图让代码片段与regex一起工作,但我似乎无法想出一种方法来实现它。
usecase正在编写LaTeX,特别是带有自动标记的部分。我对标签有一些问题,因为LaTeX不允许标签中的某些丹麦字符。因此,我想让代码片段来处理替换本身,以及一些其他格式。这意味着我要做以下几件事:
最后,我想突出显示“转换”文本,这样如果需要的话,我可以将其更改为不同的文本(在重复标签的情况下)。
这个片段看起来如下所示:
\section{$1} \label{sec:${2:$1(after regex)}希望这是有意义的
转换将执行以下操作
-> oerne_og_mus!
在Textmate中,这是可以用以下代码片段完成的
\section{${1:section name}}
\label{sec:${2:${1/(\w+)(\W+$)?|\W+/${1:?${1:/asciify/downcase}:_}/g}}}但这与VS代码不兼容。这能以某种方式被修改来使用VS代码吗?
发布于 2020-01-16 00:48:18
编辑:尝试以下代码片段:
"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}开始工作。
我试着让它作为一个常规代码片段工作,但它似乎不是一种在单个转换中完成多个转换的方法。
如果这对你有用的话请告诉我。
发布于 2020-01-16 05:03:44
好吧,那么我可能最终找到了一个解决方案,作为一个片段
"\\section{$1}",
"\\label{sec:${2:${1/(æ)|(ø)|(å)|(é)|( +)|[^A-Za-z0-9]/${1:+ae}${2:+oe}${3:+aa}${4:+e}${5:+_}/g}}}",我只发现了几个问题。
有人知道该怎么改变吗?或者我甚至可以为这种类型的regex找到一个很好的资源(我还没有找到)
https://stackoverflow.com/questions/59759720
复制相似问题