Intellij'de, deve durumu ve aralıklı alt çizgi arasında nasıl geçiş yapabilirim?


109

Şirketimde java ve sql için iki farklı stil kılavuzumuz var. Java'da adında bir alanım var historyOfPresentIllnessve sql'yi yazdığımda adını vermek istiyorumhistory_of_present_illness . İfadeyi vurguladığımda birinden diğerine geçmek için bir klavye kısayolu var mı? Ya da belki bunu yapabilen bir eklenti?

Soruyorum iken açmak için bir yol varsa, ben de isteyebilir historyOfPresentIllnessiçin history-of-present-illness. Java'dan clojure'a kadar.

Yanıtlar:


186

String Manipulation adlı bir eklenti kullanıyorumAradığınız yeteneklere (ve daha fazlasına) sahip .

Eklenti menüsünü açmak için seçin historyOfPresentIllnessve Alt+ tuşuna basın M, ardından şuna basın:

  • 5- (veya CamelCase için) snake_case hangi dönüştürürhistory_of_present_illness
  • 6 - tire harfine (veya snake_case'e) dönüştürülürhistory-of-present-illness

Bunu kolaylaştırmak için, adresinde bir kısayol oluşturabilirsiniz File | Settings | Keymap.


Eklenti deposunda "camel" için hızlı bir arama, çeşitli biçimler arasında geçiş yaparak + + ile tam olarak aradığınız şeyi yapan CamelCase adlı bir eklenti gösterdi :SHIFTALTU

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

Ancak, denedikten sonra, bu eklentide herhangi bir değişikliği geri almanızı engelleyen bir hata var gibi görünüyor. Güncelleme: Görünüşe göre bu hata bir süredir düzeltilmiş, bu yüzden CamelCase eklentisi muhtemelen gidilecek yol.


1
@tieTYT Evet, oldukça can sıkıcı bir durum çünkü size dosyada geri alınamayacak değişiklikler olduğunu söyleyen bir açılır mesaj alıyorsunuz ... bunun için olmasa daha uygun bir seçim olurdu.
DannyMo

2
@tieTYT Aklıma ilk yaklaşımı basitleştirmek için bir makro Edit > Macros > Start recording macroSettings > Keymap > Macros > YourMacro (right-click > Add Keyboard Shortcut)
kaydedip

Dize Manipülasyonu artık her tür durum arasında geçiş yapmak için eylemler de içeriyor ... Herhangi bir eylem için bir kısayol ayarlayabilirsiniz (bazı varsayılanlara sahip olamayacak kadar çok vardır).
Meo

@DannyMo - Benim için, 5için SCREAMING_SNAKE_CASEve Jiçindir Trim all spaces. Mac OS X 10.10.5, PhpStorm 10.0.1, String Manipulation 4.1.135.445.1 kullanarak.
Pang

CamelCase eklentisinin IntelliJ 2016.2.3 ile sorunsuz çalıştığını doğrulayabilirim
Wim Deblauwe

45

Bul / Değiştir panelini Clr + Façmak ve [✓] Normal ifadeyi normal ifadeden sonra kopyalamak için çok basit bir şekilde basın

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

Değiştirin: \U$1

[Tümünü Değiştir] düğmesine basın, Keyfini çıkarın


Teşekkür için @piotrek _some_awe_variçin_someAweVar

Bul'u Kullan: (\w)[_]{1,1}([a-z])
Değiştir:$1\U$2


2
Sadece bütünlüğü uğruna, CamelCase gelen snake_case için: bulmak ([A-Z]{1,1})ve tarafından yerine _\l$1ikisi ile, Regex ve harf eşleştir toggled optiones.
dic19

Bu harika ama TypeScript'te genellikle özel üyeler bir ile başlar _ve bu onların büyük harfle başlamasını sağlar.
Stack

1
@StackUnderflow Bul: (\w)[_]{1,1}([a-z]) Değiştir: $1\U$2
Qamar

7

Snake_case'den CamelCase'e

  • Bul: (\w)[_]{1,1}([a-z])
  • Değiştirin: $1\U$2
  • Ayarlar:
    • Maç Örneği
    • Normal ifade

CamelCase'den snake_case'e:

  • Bul: ([A-Z])
  • Değiştirin: \_\L$1
  • Ayarlar:
    • Maç Örneği
    • Normal ifade

3

Yukarıdaki Cevap neye değişkenleri değişeceğini neredeyse mükemmel, ama notudur _somethingveya this._somethingiçine Somethingve this.Something. Baştaki _ "özel" değişkenleri (eski JS projesi) belirtmek için kullanıldığından, benim durumumda bunu istemedim. Bu yaklaşımı biraz değiştirdim:

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

Değiştir: $ 1 \ U $ 2

Bu, yalnızca _ortada olan değişkenlerin etkilenmesini sağlayacaktır.


1
"yukarıda" anlamsızdır çünkü cevaplar sıralanabilir - "yukarı" nız herkesin "yukarısı" değildir, bu yüzden lütfen bu sitedeki içeriği tanımlamak için "yukarı" veya "aşağı" kullanmaktan kaçının, bunun yerine yazarın adını verin, teşekkürler
Eric Aya

Referans verilen "yukarıdaki" cevap @Qamar
Stack

0

PyCharm'ın kullanımları yeniden düzenlemesi konusunda bir sorununuz yoksa, "Yeniden Adlandır" aracını başlatın (Yeniden adlandır> Yeniden adlandır). Pencere açılır listeyle açılır ve listedeki metnin snake_case versiyonunu görmeniz gerekir (pencereyi açabilir ve oldukça hızlı olması için tuş vuruşlarıyla snake_case'e geçebilirsiniz).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.