在Intellij中,如何在驼峰大小写和下划线之间切换?


109

在我公司,我们有两种针对Java和SQL的样式指南。在Java中,我有一个名为的字段historyOfPresentIllness,当我编写sql时,我想为其命名history_of_present_illness。当我突出显示短语时,是否有键盘快捷键可以从一个切换到另一个?还是可以做到这一点的插件?

当我问,我也不妨问,如果有办法把historyOfPresentIllnesshistory-of-present-illness。从Java到clojure风格。

Answers:


186

我使用一个名为String Manipulation的插件,该插件具有您正在寻找的功能(以及更多)。

选择historyOfPresentIllness并按Alt+调M出插件菜单,然后按:

  • 5- 为了snake_case(或驼峰),其将到history_of_present_illness
  • 6 - 连字符大小写(或蛇形大小写)转换为history-of-present-illness

为了简化操作,您可以在设置快捷方式File | Settings | Keymap


快速搜索“骆驼”的插件库中显示一个插件叫做驼峰这不你在寻找什么用SHIFT+ ALT+ U通过各种格式之间进行切换:

historyOfPresentIllness-> history_of_present_illness-> HISTORY_OF_PRESENT_ILLNESS-> HistoryOfPresentIllness->historyOfPresentIllness

但是,尝试之后,此插件似乎存在一个错误,该错误会阻止您撤消任何更改。 更新:看来这个错误已经修复了一段时间,因此CamelCase插件可能是解决方法。


1
@tieTYT是的,这很令人讨厌,因为您会收到一条弹出消息,告诉您该文件具有无法撤消的更改...如果不是那样,那将是更方便的选择。
DannyMo 2013年

2
@tieTYT我突然想到,为了简化第一种方法,您可以记录一个宏Edit > Macros > Start recording macro,然后为您的宏添加一个简单的键映射Settings > Keymap > Macros > YourMacro (right-click > Add Keyboard Shortcut)
DannyMo 2013年

字符串操作现在还包含可在各种情况之间切换的动作...您可以设置任何动作的快捷方式(它们太多了,没有默认值)。
Meo

@DannyMo-对我来说,这是5SCREAMING_SNAKE_CASEJ是为Trim all spaces。使用Mac OS X 10.10.5,PhpStorm 10.0.1,字符串操作4.1.135.445.1。

我可以确认CamelCase插件与IntelliJ 2016.2.3
Wim Deblauwe

45

非常简单的操作Clr + F即可打开“ 查找/替换”面板,然后检查[✓]正则表达式是否复制了正则表达式

找: [_]{1,1}([a-z])

更换: \U$1

按[全部替换]按钮,享受


感谢@piotrek为_some_awe_var_someAweVar

使用查找:(\w)[_]{1,1}([a-z])
替换:$1\U$2


2
出于完整性考虑,从camelCase到snake_case:查找([A-Z]{1,1})并替换为_\l$1,同时切换了RegexMatch大小写选项。
dic19

这很棒,但是在TypeScript中,私有成员通常以开头,_这会使他们开始使用大写。
堆栈下溢

1
@StackUnderflow使用查找: (\w)[_]{1,1}([a-z]) 替换: $1\U$2
Qamar

7

从snake_case到CamelCase

  • 找: (\w)[_]{1,1}([a-z])
  • 更换: $1\U$2
  • 设定:
    • 相符
    • 正则表达式

从CamelCase到snake_case:

  • 找: ([A-Z])
  • 更换: \_\L$1
  • 设定:
    • 相符
    • 正则表达式

3

上面的答案几乎是完美的,但请注意,它将更改变量,例如_somethingthis._something变为Somethingthis.Something。在我的情况下,我不希望这样,因为前导_表示“私有”变量(旧JS项目)。我稍微修改了这种方法:

查找:(\ w)[_] {1,1}([az])

替换: $ 1 \ U $ 2

这样可以确保只_影响位于中间的变量。


1
“上方”是没有意义的,因为可以对答案进行排序-您的“上方”并不是每个人的“上方”,因此请避免使用“上方”或“下方”来描述本网站上的内容,而请提供作者的名字,谢谢
Eric Aya

引用的“上方”答案为@Qamar
堆栈下溢

0

如果您对PyCharm也可以重构用法没问题,请启动“重命名”工具(“重构”>“重命名”)。该窗口随即弹出,并带有下拉列表,您应该在列表中看到该文本的snake_case版本(您可以打开窗口并通过击键切换到snake_case,这样可以非常快)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.