更新
vscode v1.58 正在添加一个/camelcase
转换。这使您的用例现在变得非常容易。
"${1/(.)(.*)/${1:/upcase}${2:/camelcase}/}"
从blueberry_pie_with_a_cup_of_coffee
到BlueberryPieWithACupOfCoffee
"${1/(.*)/${1:/camelcase}/}"
// 只捕获整个事物
从blueberry_pie_with_a_cup_of_coffee
到blueberryPieWithACupOfCoffee
vscode 的实现使用了这个正则表达式:[a-zA-Z0-9]
所以除了这些字符之外的任何东西都将被视为分隔符——并且下面的“单词”将被大写。
上一个答案::
要将任意数量的“_”分隔单词转换为 CamelCase,请尝试:
编辑:2018 年 10 月(但截至 2020 年 2 月尚未添加到片段语法文档中)vscode 添加了/pascalcase
转换,请参阅commit。我修改了下面的代码以使用/pascalcase
转换。它只适用于some_file => SomeFile
CamelCase 类型。
但它可以使用许多字符作为分隔符,这些都有效:
blueberry_pie_with_a_cup_of_coffee
blueberry-pie-with-a-cup-of-coffee
blueberry-pie-with_a-cup-of_coffee
blueberry-pie-with.a-cup-of.coffee
blueberry*pie-with.a*cup-of.coffee
blueberry*pie@with.a*cup1of.coffee
blueberry*pie@with.a*cup1of.coffee
"camelCase": {
"prefix": "_cc",
"body": [
// "${TM_FILENAME_BASE/([a-z]*)_+([a-z]*)/${1:/capitalize}${2:/capitalize}/g}"
"${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g}"
],
"description": "Transform to camel case"
},
carrot_cake.txt
-> CarrotCake
blueberry_pie_with_a_cup_of_coffee.js
-> BlueberryPieWithACupOfCoffee
[我假设CamelCase
是您想要的形式,还有其他形式,例如camelCase
。]
对于camelCase
:
"${TM_FILENAME_BASE/([a-z]*)[-@_.*0-9]+([a-z]*)/$1${2:/capitalize}/g}"
将所需的分隔符列表放入[-@_.*0-9]+
部件中。例如,+
量词允许您使用carrot--cake
- 单词之间的多个分隔符。感谢使用[list the separators]
正则表达式部分的其他答案。
请注意,最后的“g”标志正在为您完成大部分工作,以获取超出明确捕获的两个匹配项之外的匹配项。
我像你们一样离开了捕获组([a-z]*)
。您可能希望使用([A-Za-z0-9]*)
更大的灵活性。