Jef*_*eff 27 regex vim replace case-conversion
如果由于某种原因我想有选择地将camelCase命名的东西转换成vim中的下划线,我怎么能这样做呢?
目前我发现我可以进行搜索/s[a-z][A-Z]并记录一个宏来添加一个下划线并转换为小写,但我很好奇我是否可以使用以下内容:
%s/([a-z])([A-Z])/\1\u\2/gc
提前致谢!
编辑:我找到了camelCase的答案(这是我真正需要的),但其他人可以回答如何将CamelCase更改为camel_case吗?
nel*_*rom 44
你可能想试试Tim Pope 的Abolish插件.它提供了一些快捷方式,以强制从一个风格到另一个.例如,从以下开始:
MixedCase
Run Code Online (Sandbox Code Playgroud)
键入crc[助记符:CoeRce到Camelcase]会给你:
mixedCase
Run Code Online (Sandbox Code Playgroud)
键入crs[助记符:CoeRce到Snake_case]会给你:
mixed_case
Run Code Online (Sandbox Code Playgroud)
输入crm[助记符:CoeRce到MixedCase]会带你回到:
MixedCase
Run Code Online (Sandbox Code Playgroud)
如果还安装了repeat.vim,则可以通过按下点键重复强制命令.
Rai*_*ndi 22
这有点长,但似乎做了这个工作:
:%s/\<\u\|\l\u/\= join(split(tolower(submatch(0)), '\zs'), '_')/gc
Jef*_*eff 10
我想我应该继续尝试大约5分钟.好吧......如果有人好奇的话:
%s/\(\l\)\(\u\)/\1\_\l\2/gc 诀窍.
实际上,我意识到这适用于camelCase,而不是CamelCase,它也可能对某人有用.
我整理了一个可以做到这一点的插件。 https://github.com/chiedojohn/vim-case-convert
要转换大小写,请在可视模式下选择一个文本块,然后输入以下内容之一(自我解释):
:CamelToHyphen
:CamelToSnake
:HyphenToCamel
:HyphenToSnake
:SnakeToCamel
:SnakeToHyphen
要转换文档中的所有事件,请运行以下命令之一:
:CamelToHyphenAll
:CamelToSnakeAll
:HyphenToCamelAll
:HyphenToSnakeAll
:SnakeToCamelAll
:SnakeToHyphen
在上面的任何命令中添加一个爆炸声(例如:CamelToHyphen!),以在每次转换之前绕过提示。您可能不想这样做,因为插件不知道文件中变量或其他文本之间的区别。
| 归档时间: |
|
| 查看次数: |
9142 次 |
| 最近记录: |