visual-studio-code - VSCode:将键绑定分配给片段不起作用
问题描述
我想使用一个片段来转换'。' 至 '_'。我想将此代码段绑定到快捷键。
我包括以下keybindings.json
文件。
//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",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": "${1/[.]/_/g}_more_text",
},
},
当片段中有一些文本时它可以工作,但当片段中没有文本时会失败。
任何帮助,将不胜感激。
编辑 2020/09/03:
此代码段在全局代码段文件中工作(如下所示)。只有当我在键绑定中使用它时它才会失败。
//Snippet-3
"snake_case": {
"prefix": "sn",
"body":"${1/[.]/_/g}"
},
解决方案
通常在括号中的交替组中,您不需要转义文字点,但显然您在片段中这样做。Vscode 的文档,请参阅转换示例。所以我尝试了:
"snippet": "${1/[\\.]/_/g}"
它可以按您的预期工作。但是我仍然认为这里有一个错误,因为仅添加一个空格就可以使您的版本正常工作!
推荐阅读
- bash - Sed 用正则表达式替换正则表达式
- django - 定义视图函数并写入 url 并添加一些数据后,我无法访问新的 url
- scala - 如何获取有限 SQL 查询的唯一值
- wordpress - 显示 php 的 Wordpress 站点运行状况已过时...但不是
- swift - 当子 vc 与父 vc 不在同一故事板中时,addChild 不起作用
- unity3d - 如何在其父对象之前绘制对象?
- python - OpenCV drawMatches 函数错误(错误的源类型)
- javascript - 通过具有类型的直接路径在树中查找路径
- llvm - LLVM 断言“解决此责任集之外的符号”
- java - 如何更改 RunTime 中的方法注释值?