使用正则表达式在 Visual Studio Code 中设置代码片段

2023-11-29

{
    "Comment": {
        "prefix": "#",
        "body":  "<!-- ${TM_FILEPATH/([^/]*\/[^/]*)$/$1/} -->"
    }
}

我已经设置了about代码片段,目的是添加注释,添加文件的基目录和文件名<!-- templates/base.html -->像这样但丢弃路径的其余部分。我相信这最初是基于 TextMate 片段。

enter image description here

我已经尝试了一切,但我无法让它工作,这可能是愚蠢的事情,但我不明白我做错了什么。

仅使用TM_FILEPATH
没有正则表达式结果<!-- /Users/johndoe/Sites/blog/blog/templates/base.html -->

我用过这个https://code.visualstudio.com/docs/editor/userdefinesnippets找到一个示例来作为我的代码的基础。例子是这样的:

${TM_FILENAME/(.*)\\..+$/$1/}
  |           |        | |
  |           |        | |-> no options
  |           |        |
  |           |        |-> references the contents of the first
  |           |             capture group
  |           |
  |           |-> regex to capture everything before
  |               the final `.suffix`
  |
  |-> resolves to the filename

感谢两位评论者的想法,我终于能够让它发挥作用。

一位评论者让我使用双反斜杠来捕捉 Windows 和 Unix 风格的斜杠。

另一位评论者建议使用方括号。

最后结果:

{
    "Comment": {
        "prefix": "#",
        "body":  "<!-- ${TM_FILEPATH/.*[\\/](.*[\\/].*)$/$1/} -->",
    }
}

尝试这样的事情:

"Comment": {
    "prefix": "#",
    "body":  [

      "<!-- ${TM_FILEPATH/.*\\\\(.*\\\\.*)$$/$1/} -->",

      "<!-- ${TM_DIRECTORY/.*\\\\(.*)$/$1/}/${TM_FILENAME} -->",
    ]
},

正文中的这两行应该是等效的。这适用于 Windows 目录样式,例如:

 c:\Users\Mark\asdf\experimental\src\js\main.js

由于你的 path.separators 是/尝试类似的东西:

"<!-- ${TM_FILEPATH/.*\/(.*\.*)$/$1/} -->", 
"<!-- ${TM_FILEPATH/.*\\/(.*\\.*)$/$1/} -->",
"<!-- ${TM_FILEPATH/.*\\\/(.*\\\.*)$/$1/} -->",
"<!-- ${TM_FILEPATH/.*\\\\/(.*\\\\.*)$/$1/} -->",

我只是不知道您的操作系统需要多少个反斜杠(我无法在这里测试)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用正则表达式在 Visual Studio Code 中设置代码片段 的相关文章

随机推荐

  • 如何从一个 HTML5 画布拖放到另一个画布

    我试图弄清楚如何将图像从一个画布拖放到另一个画布 假设画布彼此相邻 是否可以无缝地将某些东西拖过边界 如果不是 将 div 拖到画布上 获取其 ID 然后通过响应画布上的 mouseup 位置来放置它是不是更好 您不能在画布上拖动项目 画布
  • 如何检查是否有任何 JavaScript 事件侦听器/处理程序附加到元素/文档? [复制]

    这个问题在这里已经有答案了 尝试在线搜索 但看起来我无法正确制定搜索查询 我如何使用 jQuery 或仅使用 javascript 列出附加到元素 文档 窗口或存在于 DOM 中的所有处理程序或事件侦听器 在 1 8 之前的 jQuery
  • 有理数 - ruby​​ 中的原始数字

    如何获得原始号码 例如当我输入 r Rational 2 10 1 5 2和10将更改为1和5 r numerator 1 r denominator 5 如何从 Rational 类的实例中获取 2 和 10 r 我对 Rational
  • Android:DCIM 文件夹中的重复照片存储

    我正在使用本机 Android 相机并将文件保存到应用程序数据文件夹 mnt sdcard Pictures 同时 在某些设备上 照片的另一个副本会保存到 DCIM 文件夹中 这是我的代码 private void startStockCa
  • Inno Setup 根据可执行调用的结果有条件重新启动

    我的 Inno Setup 脚本用于安装驱动程序 它运行我的InstallDriver exe在步骤中复制此文件后ssInstall 我需要根据返回的值要求用户在某些情况下重新启动InstallDriver exe 这意味着我不能把Inst
  • Pandas dataframe:从列中的字符串中提取浮点值

    我正在尝试从特定列的字符串中提取浮动值 原始输出 DATE strCondition 4 3 2018 2 9 4 3 2018 3 1 text 4 3 2018 2 6 text 4 3 2018 text 2 7 和其他变化 我也尝试
  • ASP.NET MVC 下的 SSL 页面

    如何对基于 ASP NET MVC 的站点中的某些页面使用 HTTPS Steve Sanderson 在预览版 4 上有一个关于如何以 DRY 方式执行此操作的非常好的教程 网址为 http blog codeville net 2008
  • Django,使用其他表中的数据进行注释和排序

    在我的应用程序中 有请求物品的用户和捐赠这些物品的用户 我想获取所有捐款最多的用户 这些是我的模型 class ItemRequest models Model item type models ForeignKey ItemType de
  • 当 html 表单允许文件上传时,Django 停止并显示“生成器引发 StopIteration”

    我的设置是 Windows 10 Python 3 7 Apache 2 4 mod wsgi 当我添加这个时enctype multipart form data 在我的表单中 仅通过添加此属性 仅 没有文件附加到表单 提交时出现此错误
  • nginx。被 CORS 政策阻止

    当前 nginx 配置 server listen hidden 80 server name dev hidden com root var www back hidden api location add header Access C
  • csv 读取引发“UnicodeDecodeError:'charmap'编解码器无法解码...”

    我已经阅读了我能找到的所有帖子 但我的情况似乎很独特 我对 Python 完全陌生 所以这可能是基础的 我收到以下错误 UnicodeDecodeError charmap 编解码器无法解码位置 70 中的字节 0x8d 字符映射到未定义
  • 如何将日期选择器包装在新的 div 中?

    我需要将我的日期选择器放在一个新的 div 中 这将是一个 shadow border div 我尝试过以下方法 beforeShow function input input datepicker widget find ui datep
  • 最大字符串数组 VisualBasic WSH

    我正在 VB 中编写一个 WSH 脚本 以读取通过 Run 方法使用重定向目录列表生成的大量目录列表 目录列表大约有 8400 行 但是每次我运行脚本时 都会出现以下循环 执行直到 DirList AtEndOfStream Redim 保
  • 我可以手动注册/安装 Search.Collat​​orDSO.1

    我目前正在尝试使用 windows search 服务搜索一些索引文件 我的问题是 Windows 搜索无法安装在网络服务器上 因为它是 网络版本 收到的错误消息是 Search Collat orDSO 1 提供程序未在本地计算机上注册
  • Windows 忽略 JAVA_HOME:如何将 JDK 设置为默认值?

    如何说服 Windows 使用 JDK 而不是 JRE 这个问题之前已经在这里和其他地方被问过 如何设置默认 Java 安装 运行时 Windows 问题是 Windows 忽略了JAVA HOME它还忽略了我将 JDK bin 目录作为路
  • 如何检测Android是否完全支持USB?

    我的应用程序使用UsbManager与 USB 摄像头通信 有些设备不支持 USB 这些将返回null for UsbManager context getSystemService Context USB SERVICE 或者他们会抛出一
  • 放大 Plotly 热图

    目前 Plotly JS 热图中有 2 种 缩放 行为 在这里 您可以采用任何矩形形状进行缩放 单击 拖放 但是像素不是正方形的 这对于某些应用程序来说是不行的 不保留长宽比 有时应该保留 const z Array from length
  • 为什么在隐含时使用媒体查询类型“all”?

    我最近注意到我一直在使用all在每一个 media查询规则 我不明白为什么我这样做 我在网上搜索过 我发现大多数 media网络上的规则示例使用如下格式 media all and some other condition 为什么有媒体类型
  • 在 Firebase 中随机配对用户[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我正在使用 Flutter 和 Firebase 开发一个应用程序 我必须解决一个听起来像这样的问题 每个用户 在任何时候 都可以将自己置于等候名单 Firebase 必须通过以下方式
  • 使用正则表达式在 Visual Studio Code 中设置代码片段

    Comment prefix body 我已经设置了about代码片段 目的是添加注释 添加文件的基目录和文件名像这样但丢弃路径的其余部分 我相信这最初是基于 TextMate 片段 我已经尝试了一切 但我无法让它工作 这可能是愚蠢的事情