153

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

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

4

5 回答 5

257

Two plugins offer this feature:

I use a plugin called String Manipulation which does what you need (and more).

Select historyOfPresentIllness and press Alt / option+M to bring up the plugin menu, then press:

  • 5 - To snake_case (or to camelCase) which converts to history_of_present_illness
  • 6 - To hyphen-case (or to snake_case) which converts to history-of-present-illness

To make this easier, you could set up a shortcut at File | Settings | Keymap.


There also is the [CamelCase][3] plugin.

SHIFT+Alt / option+U toggles the selection between formats:

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

You can also undo your changes (now that a bug in the plugin got fixed).

于 2013-06-27T18:56:21.717 回答
75

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

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

代替: \U$1

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


感谢_some_awe_var@piotrek_someAweVar

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

于 2017-10-09T11:54:00.513 回答
15

从snake_case 到 CamelCase

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

从 CamelCase 到 snake_case:

  • 寻找:([A-Z])
  • 代替:\_\L$1
  • 设置:
    • 相符
    • 正则表达式
于 2019-07-01T13:13:25.003 回答
4

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

于 2019-06-07T22:26:12.847 回答
4

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

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

替换: $1\U$2

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

于 2019-02-13T13:50:48.620 回答