gpt4 book ai didi

regex - 如何在 vimscript 或 UltiSnips 中扩展没有 'test' 的当前文件名

转载 作者:行者123 更新时间:2023-12-02 14:53:22 28 4
gpt4 key购买 nike

我正在编写一个片段,其中我需要在 vimscript 中获取当前文件名。我可以用 expand('%:t:r') 愉快地做到这一点(如图 here 所示)。但是,我不仅要从文件名中排除“.js”,还要排除“.test”。

例如

如果在 myName.test.js 中,我想获取 'myName'

如果在 myName.js 中,我也想获取 'myName'

我这样做是为了创建一个 UltiSnips 片段,这样其他方法(例如正则表达式)也很有用

最佳答案

:t:r 是文件名修饰符。如果关注:help filename-modifiers ,还有一个漂亮的(但鲜为人知的):s?pat?sub? 修饰符可以执行替换。因为它可以与其他修饰符结合使用,所以您需要做的就是匹配锚定到文件名末尾的 .test:

:echo expand('%:t:r:s?\.test$??')

如果替换失败则不会出现错误,因此无需将匹配设为可选(通过 \?)。

关于regex - 如何在 vimscript 或 UltiSnips 中扩展没有 'test' 的当前文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54365600/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com