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

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

当我问的时候,我不妨问一下是否有办法把 historyOfPresentIllness变成 history-of-present-illness。这是从爪哇到 Clojure 风格。

67702 次浏览

有两个插件提供了这个特性:

我使用一个名为 字符串操作的插件,它可以满足你的需要(甚至更多)。

选择 historyOfPresentIllness,按 Alt / option + M打开插件菜单,然后按:

  • 转换成 history_of_present_illness5-到 Snake _ case (或到 camelCase)
  • 转换成 history-of-present-illness6-到连字符格(或到 Snake _ case)

为了使这更容易,您可以在 File | Settings | Keymap设置一个快捷方式。


还有 CamelCase插件。

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

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

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

非常简单的按 Clr + F打开 查找/替换面板,并检查 正则表达复制过去的正则表达式

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

替换: \U$1

按[更换所有]按钮,享受


谢谢@piotrek 把 _some_awe_var转到 _someAweVar

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

上面的答案几乎是完美的,但是要注意,它将把 _somethingthis._something这样的变量改为 Somethingthis.Something。在我的例子中,我不希望出现这种情况,因为 lead _ 用于表示“私有”变量(旧的 JS 项目)。我稍微修改了一下这种方法:

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

替换: $1 U $2

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

如果 PyCharm 也可以进行重构,那么启动“ Rename”工具(Refactor > Rename)。这个窗口会弹出一个下拉列表,您应该会看到列表中文本的 Snake _ case 版本(您可以打开这个窗口并用按键切换到 Snake _ case,因此它可以非常快速)。

从 Snake _ case 到 CamelCase

  • 查找: (\w)[_]{1,1}([a-z])
  • 替换: $1\U$2
  • 设定:
    • 火柴盒
    • 正方糖

从 CamelCase 到 Snake _ case:

  • 查找: ([A-Z])
  • 替换: \_\L$1
  • 设定:
    • 火柴盒
    • 正方糖