如何在 VIM 片段中将这个词大写?
How can you capitalize this word in VIM snippet?
编辑 — 这是 not possible 和 coc 片段。使用 Ultisnips 是可能的。
我有以下 vim 片段,我正在使用(与 coc-snippets)用于 React:
snippet STATE_HOOK "useState hook" b
const [${1:state}, set${1:`!v expand('%:t:r')`}] = useState()
endsnippet
这可用于快速创建以下(不正确的)代码:
const [color, setcolor] = useState("green");
问题是 setcolor
需要驼峰化,像这样:setColor
如何编写此代码段才能使扩展输入大写?
像 foo-bar
或 foo_bar
这样的字符串很容易变成 fooBar
而 fooBar
很容易变成 foo-bar
或 foo_bar
因为这两个部分很容易识别,这为您提供了一个结构。
usecolor
没有这样的东西。没有分隔符,所有内容都是相同的大小写,因此您可以从该字符串中得到很多有效的 camel-cased 名称:usecOlor
、uSeCoLor
等
您有三个选择:
- camel-case 您的文件名,这样您就不必执行任何转换,
- kebab-case 或 snake-case 您的文件名,以便通过简单的替换轻松转换它们,
- 提出广泛的规则并找出如何以令人满意且可重现的方式转换随机字符串。
我会选择 1。
我正在测试一些不同的东西,你可以使用:
snippet STATE_HOOK "useState hook" b
const [, set${1/\w+/\u[=10=]/g}] = useState("")
endsnippet
工作原理:
检查 documentation 我发现你应该用相同的文本覆盖文本但大写,所以 \w+
获取所有文本(我认为'+'是不必要的)并用 [=12= 覆盖它](是相同的文本,但大写)
编辑 — 这是 not possible 和 coc 片段。使用 Ultisnips 是可能的。
我有以下 vim 片段,我正在使用(与 coc-snippets)用于 React:
snippet STATE_HOOK "useState hook" b
const [${1:state}, set${1:`!v expand('%:t:r')`}] = useState()
endsnippet
这可用于快速创建以下(不正确的)代码:
const [color, setcolor] = useState("green");
问题是 setcolor
需要驼峰化,像这样:setColor
如何编写此代码段才能使扩展输入大写?
像 foo-bar
或 foo_bar
这样的字符串很容易变成 fooBar
而 fooBar
很容易变成 foo-bar
或 foo_bar
因为这两个部分很容易识别,这为您提供了一个结构。
usecolor
没有这样的东西。没有分隔符,所有内容都是相同的大小写,因此您可以从该字符串中得到很多有效的 camel-cased 名称:usecOlor
、uSeCoLor
等
您有三个选择:
- camel-case 您的文件名,这样您就不必执行任何转换,
- kebab-case 或 snake-case 您的文件名,以便通过简单的替换轻松转换它们,
- 提出广泛的规则并找出如何以令人满意且可重现的方式转换随机字符串。
我会选择 1。
我正在测试一些不同的东西,你可以使用:
snippet STATE_HOOK "useState hook" b
const [, set${1/\w+/\u[=10=]/g}] = useState("")
endsnippet
工作原理:
检查 documentation 我发现你应该用相同的文本覆盖文本但大写,所以 \w+
获取所有文本(我认为'+'是不必要的)并用 [=12= 覆盖它](是相同的文本,但大写)