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


108

私の会社では、JavaとSQLの2つの異なるスタイルガイドを用意しています。Javaでは名前の付いたフィールドがhistoryOfPresentIllnessあり、SQLを書くときに名前を付けたいと思いhistory_of_present_illnessます。フレーズを強調表示したときにキーボードショートカットを切り替えて使用できますか?それとも、これを行うことができるプラグインですか?

私が求めている間に有効にする方法がある場合、私は同様に求めることができるhistoryOfPresentIllnessにはhistory-of-present-illness。それはjavaからclojureスタイルまでです。

回答:


185

私は文字列操作と呼ばれるプラグインを使用しています。

を選択historyOfPresentIllnessしてAlt+ Mを押し、プラグインメニューを表示して、次を押します:

  • 5- 変換するsnake_case(またはcamelCase)history_of_present_illness
  • 6 - 変換するハイフンケース(またはsnake_case)history-of-present-illness

これを簡単にするために、にショートカットを設定できますFile | Settings | Keymap


「camel」のプラグインリポジトリをすばやく検索すると、CamelCaseと呼ばれるプラグインが見つかりました。このプラグインは、さまざまな形式を切り替えることで、必要な機能を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

文字列操作には、あらゆる種類のケースを切り替えるアクションも含まれるようになりました...任意のアクションへのショートカットを設定できます(アクションの数が多すぎて、デフォルトを設定できません)。
Meo

@DannyMo-私にとって、それはの5ためSCREAMING_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を開き、[[✓] Regex copy past past regex ]をチェックします

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

交換: \U$1

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


おかげで用@piotrek _some_awe_var_someAweVar

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


2
完全を期すために、camelCaseからsnake_caseまで:RegexMatch caseの両方のオプションを切り替え([A-Z]{1,1})_\l$1、検索してに置き換えます。
dic19

これは素晴らしいことですが、TypeScriptでは、プライベートメンバーはしばしばan _で始まり、これにより、それらは大文字で始まるようになります。
スタックアンダーフロー

1
@StackUnderflow use Find: (\w)[_]{1,1}([a-z]) Replace: $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._somethingSomethingthis.Something。先頭に_を使用して「プライベート」変数(古いJSプロジェクト)を示したため、私はそれを望みませんでした。私はこのアプローチを少し変更しました:

検索:(\ w)[_] {1,1}([az])

交換: $ 1 \ U $ 2

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


1
「上」は回答を並べ替えることができるため意味がありません。「上」は全員の「上」ではないため、このサイトのコンテンツの説明に「上」または「下」を使用しないでください。代わりに著者の名前を付けてください
Eric Aya

参照されている「上記」の回答は@Qamarです
スタックアンダーフロー

0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.