我想在触发时创建一个片段,它会围绕给定的文字。目前我的片段是:
{
"Function Creator Helper": {
"prefix": "_w",
"body": [
"public function $TM_SELECTED_TEXT () {",
" $1",
"}",
],
"description": "Creates a function given the text selection"
}
}
结果如下:
我的工作是:
_w
)结果如下:
public function () {
}
但我期待
public function person () {
}
关于如何制作此片段或如何正确触发它的任何想法?
答案 0 :(得分:6)
当前选定的文字显示为${TM_SELECTED_TEXT}
,而不是$TM_SELECTED_TEXT
。
编辑:如下所述,对于此特定用例
,情况并非如此答案 1 :(得分:3)
我自己就是在努力解决这个问题。为了实现这一点,您唯一需要做的就是按F1
,运行Insert Snippet
命令,然后从列表中选择您的代码段。
答案 2 :(得分:1)
${TM_SELECTED_TEXT}
也不适合我。
${selectedText}
已添加为代码段编辑器变量:
https://github.com/Microsoft/vscode/pull/39483#issuecomment-383552677
示例:
"JS Block Quote": {
"prefix": "c2",
"body": [
"/* ${selectedText} */",
],
"description": "JS Block Quote"
}
目前,此文件未正确记录: https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variables
注意:在多行选择中,${selectedText}
被截断到第一行。一种替代方法是使用剪贴板和${CLIPBOARD}
变量。
额外的步骤:(
答案 3 :(得分:1)
如果有人想知道,它对我来说就是这样:
我创建了两个相同的代码段,仅当我使用html或php文件时才匹配(只需在您的代码段文件夹“ php.json”和“ html.json”中创建两个代码段文件即可,适用于所有语言),并添加了此代码段里面的代码:
"unicommentary": {
"prefix": "unicommentary",
"body": "<?php /* ${TM_SELECTED_TEXT} */ ?> ${0}",
"description": "Creates a universal comment to disable both html and php."
}
${TM_SELECTED_TEXT}
标签在您选择一些文本并通过Insert Snippet
命令触发代码段时起作用,您不仅可以在所选文本上书写。
要使用此功能,请在代码段中选择所需的文本,然后按 Ctrl + Shift + P 并选择{{ 1}},然后输入代码段的名称,按Enter键,然后就可以了!
答案 4 :(得分:0)
以Mitches为例:
"JS Block Quote": {
"prefix": "c2",
"body": [
"/* $TM_SELECTED_TEXT */",
],
"description": "JS Block Quote" }
来自文章:https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variables 文档必须早于发行版。
这在vscode v1.30.2中很好用
答案 5 :(得分:0)
如果您通过热键触发$TM_SELECTED_TEXT
,则可以使用它:
{
"key": "cmd+k 1",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
// "langId": "csharp",
"name": "Function Creator Helper"
}
}