web-dev-qa-db-ja.com

Intellijでは、キャメルケースとアンダースコア間隔を切り替えるにはどうすればよいですか?

私の会社には、Java vs sql。In。Javaというフィールドがあり、historyOfPresentIllnessというフィールドがあり、 sql、名前を付けたいhistory_of_present_illness。フレーズを強調表示したときに、一方から他方に切り替えるキーボードショートカットはありますか?または、おそらくこれを実行できるプラグインですか?

私が尋ねている間に、historyOfPresentIllnesshistory-of-present-illnessに変える方法があるかどうかを尋ねることもできます。 Javaからclojureスタイルまで。

88
Daniel Kaplan

非常に簡単な_Clr + F_を押して開く検索/置換パネルとチェック[✓] Regex過去の正規表現をコピー

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

置換: _\U$1_

[すべて置換]ボタンを押して、お楽しみください


__some_awe_var_から__someAweVar_に@piotrekに感謝

検索を使用:_(\w)[_]{1,1}([a-z])_
置換:_$1\U$2_

27
Qamar

上記の答えはほぼ完璧ですが、_somethingthis._somethingなどの変数をSomethingthis.Somethingに変更することに注意してください。私の場合、「プライベート」変数(古いJSプロジェクト)を示すために先頭の_が使用されていたため、これは望ましくありませんでした。私はこのアプローチをわずかに変更しました:

検索:(\ w)[_] {1,1}([a-z])

置換: $ 1\U $ 2

これにより、_が中央にある変数のみが影響を受けるようになります。

2
piotrek

Snake_caseからCamelCaseまで

  • 検索:(\w)[_]{1,1}([a-z])
  • 置換:$1\U$2
  • 設定:
    • マッチケース
    • 正規表現

CamelCaseからsnake_caseまで:

  • 検索:([A-Z])
  • 置換:\_\L$1
  • 設定:
    • マッチケース
    • 正規表現
1

PyCharmも使用法のリファクタリングに問題がない場合は、「名前変更」ツールを起動します([リファクタリング]> [名前変更])。ウィンドウがドロップダウンリストでポップアップし、リストにテキストのsnake_caseバージョンが表示されます(ウィンドウを開いて、キーストロークでsnake_caseに切り替えると、かなり速くなります)。

0
Rafe