在Intellij中,如何在驼色大小写和下划线分隔之间切换



在我的公司,我们有两个不同的java和sql风格指南。在java中,我有一个名为historyOfPresentIllness的字段,当我编写sql时,我想将其命名为history_of_present_illness。当我突出显示短语时,有没有键盘快捷键可以从一个切换到另一个?或者可能是一个插件可以做到这一点?

在我问的时候,我不妨问一下是否有办法将historyOfPresentIllness转换为history-of-present-illness。这是从java到clojure的风格。

有两个插件提供此功能:

我使用了一个名为String Manipulation的插件,它可以满足您的需求(甚至更多)。

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

  • 5-到转换为history_of_present_illness的snake_case(或camelCase)
  • 6-到连字符大小写(或到snake_case)转换为history-of-present-illness

为了更简单,您可以在File | Settings | Keymap设置一个快捷方式。


还有CamelCase插件。

SHIFT+Alt/option+U在格式之间切换选择:

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

您也可以撤消您的更改(现在插件中的一个错误已经修复)。

非常简单地按Clr + F打开查找/替换面板并检查[✓]Regex复制过去的Regex

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

替换:U$1

按下[全部更换]按钮,享受


感谢@piotrek提供_some_awe_var_someAweVar

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

从snake_case到CamelCase

  • 查找:(w)[_]{1,1}([a-z])
  • 替换:$1U$2
  • 设置:
    • 区分大小写
    • Regex

从CamelCase到snake_case:

  • 查找:([A-Z])
  • 替换:_L$1
  • 设置:
    • 区分大小写
    • Regex

如果您还可以使用PyCharm重构,请启动"重命名"工具(Refactor>Rename)。该窗口会弹出下拉列表,您应该会在列表中看到文本的snake_case版本(您可以打开窗口并通过按键切换到snake_cse,这样可以非常快)。

上面的答案几乎是完美的,但请注意,它会将_somethingthis._something等变量更改为Somethingthis.Something。我不希望在我的例子中出现这种情况,因为前导_被用来表示"私有"变量(旧的JS项目)。我稍微修改了这个方法:

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

替换:$1\U$2

这将确保只有_位于中间的变量才会受到影响。

最新更新