【问题标题】:How to get the base directory in visual studio code snippet?如何在 Visual Studio 代码片段中获取基本目录?
【发布时间】:2018-06-30 03:57:59
【问题描述】:

我正在尝试在 sn-p 中获取文件当前目录以获取 Visual Studio 代码。

VSCode has a variable:TM_DIRECTORY,即完整路径

例如:

{folder: "$TM_DIRECTORY"}

将被替换为

{folder: "/Volumes/my-project-path/ParentFolder/MyFolder"}

但我只想要MyFolder

通常,我们可以使用transform as indicated in the docs。 Sublime Text 以同样的方式工作。但尽我所能,sn-p 只是输出整个正则表达式。

有人可以用神奇的变量/变换来回答吗? :)

【问题讨论】:

    标签: visual-studio-code code-snippets


    【解决方案1】:

    好的,终于找到了。

    ${TM_DIRECTORY/^.+\\/(.*)$/$1/} 给出基本目录。

    我没有得到的部分是目录分隔符/ -> \\/ 的“双重转义”。

    【讨论】:

    • 如何转义 \Volumes\my-project-path\ParentFolder\MyFolder ?
    • 没关系也找到它:${TM_DIRECTORY/^.+\\\\(.*)$/$1/}
    • 我不明白 vscode sn-ps 是如何工作的,但它肯定与 regex101 不同。我试过这个${TM_DIRECTORY/(\\w+)$/$1/},但它不起作用,以为我希望它在字符串结尾之前取最后一个单词,就像这里regex101.com/r/kc7oNF/1
    【解决方案2】:

    我想在 Windows 中添加,上面的代码将打印整个目录。

    您需要添加一个四反斜杠与正斜杠:

    ${TM_DIRECTORY/^.+\\\\(.*)$/$1/}
    

    【讨论】:

      【解决方案3】:

      这支持 Windows 和 Unix:

      ${TM_DIRECTORY/^.+[\\/\\\\]+(.*)$/$1/}
      

      【讨论】:

        猜你喜欢
        • 2020-09-07
        • 1970-01-01
        • 1970-01-01
        • 2016-11-17
        • 2011-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多