РЕДАКТИРОВАТЬ: попробуйте этот фрагмент:
"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"
},
Если у вас есть больше символов Dani sh, вам придется добавить их по отдельности - vscode не поддерживает преобразование /asciify
.
Предыдущий ответ:
Я действительно не думаю, что вы можете сделать это за одно регулярное выражение. Что означает, что обычный фрагмент не будет работать. Макрос может выполнить столько преобразований фрагментов, сколько вы хотите.
Используя расширение макроса multi-command , установите это в своих настройках. 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}
, если это будет необходимо.
Я пытался заставить его работать как обычный фрагмент, но это не похоже на способ получить несколько преобразований. что вы хотите сделать в одном преобразовании.
Дайте мне знать, если это работает для вас.