问题描述
我想使用一个片段来转换“。”至 '_'。我想将此代码段绑定到快捷键。
//keybindings.json
//Snippet-1
{
"key": "alt+u","command": "editor.action.insertSnippet","when": "editorTextFocus","args": {
"snippet": "${1/[.]/_/g}",},
按alt+u
不会插入摘要。
但是,以下方法可行:
//keybindings.json
// Snippet-2
{
"key": "alt+u","args": {
"snippet": "${1/[.]/_/g}_more_text",
当代码段中有一些文本时,它可以工作,但如果代码段中没有文本,则它会失败。
任何帮助将不胜感激。
编辑2020/09/03:
此代码段适用于全局代码段文件(如下所示)。只有当我在键盘绑定中使用它时,它才会失败。
//Snippet-3
"snake_case": {
"prefix": "sn","body":"${1/[.]/_/g}"
},
解决方法
通常,在方括号内的交替组中,您不需要转义文字点,但显然您需要摘录。 Vscode的文档,请参见transform examples。所以我尝试了:
"snippet": "${1/[\\.]/_/g}"
,它按您的预期工作。但是我仍然认为这里存在一个错误,因为仅添加一个空格就能使您的版本正常工作!