Як в Intellij можна перемикатися між розставленим корпусом верблюда та підкресленням?


109

У моєї компанії у нас є два різних посібника стилю для java vs sql. У Java я маю поле з ім'ям, historyOfPresentIllnessі коли я пишу sql, я хочу його назвати history_of_present_illness. Чи є комбінація клавіш для переключення з однієї на іншу, коли у мене виділена фраза? Чи, можливо, плагін, який може це зробити?

У той час як я прошу, я можу також запитати, чи є спосіб , щоб включити historyOfPresentIllnessв history-of-present-illness. Це від стилю java до clojure.

Відповіді:


186

Я використовую плагін під назвою String Manipulation, який має можливості, які ви шукаєте (і багато іншого).

Виберіть historyOfPresentIllnessі натисніть Alt+, Mщоб відкрити меню плагінів, а потім натисніть:

  • 5- у snake_case (або в camelCase), в який перетворюєтьсяhistory_of_present_illness
  • 6 - до дефіса (або до змії), який перетворюєтьсяhistory-of-present-illness

Щоб зробити це простіше, ви можете встановити ярлик на File | Settings | Keymap.


Швидкий пошук сховища плагінів для "верблюда" показав плагін під назвою CamelCase, який робить саме те, що ви шукаєте з SHIFT+ ALT+ U, перемикаючись між різними форматами:

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

Однак після його випробування, здається, виникла помилка з цим плагіном, яка не дозволяє скасувати будь-які зміни. Оновлення: схоже, ця помилка виправлена ​​вже деякий час, тому плагін CamelCase - це, мабуть, шлях.


1
@tieTYT Так, це дуже дратує, оскільки ви отримуєте спливаюче повідомлення про те, що у файлі є зміни, які неможливо відмінити ... якби не це, то це було б зручнішим вибором.
DannyMo

2
@tieTYT Мені просто спало на думку, що для спрощення першого підходу ви можете записати макрос, Edit > Macros > Start recording macroа потім додати просте відображення ключів для свого макросуSettings > Keymap > Macros > YourMacro (right-click > Add Keyboard Shortcut)
DannyMo

Маніпуляція з рядками тепер також містить дії для перемикання між усіма видами справ ... Ви можете встановити ярлик до будь-яких дій (їх занадто багато, щоб мати за замовчуванням).
Мео

@DannyMo - Для мене, це 5для SCREAMING_SNAKE_CASEі Jдля 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 скопіювати минулий регекс

Знайти: [_]{1,1}([a-z])

Замінити: \U$1

Натисніть кнопку [Замінити все], насолоджуйтесь


Завдяки @piotrek для _some_awe_varдо_someAweVar

Використовуйте Find: (\w)[_]{1,1}([a-z])
Замінити:$1\U$2


2
Тільки задля повноти, від camelCase до snake_case: знайдіть ([A-Z]{1,1})і замініть _\l$1, перемикаючи обидва варіанти Regex та Match .
dic19,

Це чудово, але в TypeScript часто приватні члени починаються з а, _і це змушує їх почати використовувати великі літери.
Stack згущеного

1
@StackUnderflow використовувати Знайти: (\w)[_]{1,1}([a-z]) Замінити: $1\U$2
Камар

7

Від snake_case до CamelCase

  • Знайти: (\w)[_]{1,1}([a-z])
  • Замінити: $1\U$2
  • Налаштування:
    • Матч справи
    • Регекс

Від CamelCase до snake_case:

  • Знайти: ([A-Z])
  • Замінити: \_\L$1
  • Налаштування:
    • Матч справи
    • Регекс

3

Відповідь вище майже досконала, але зауважте , що це змінить змінні , як _somethingі this._somethingв Somethingі this.Something. Я не хотів, щоб у моєму випадку, оскільки _ _ використовувався для позначення "приватних" змінних (старий проект JS). Я трохи змінив цей підхід:

Знайти: (\ w) [_] {1,1} ([az])

Замініть: $ 1 \ U $ 2

Це забезпечить _ураження лише змінних з серединою.


1
«Вище» НЕ має сенсу , тому що відповіді можуть бути відсортовані - ваш «вище" не у всіх «вище» , так будь ласка , не використовуючи «вище» або «нижче» для опису вмісту на цьому сайті, а НЕ дати ім'я автора, спасибі
Ерік Ая

Відповідь "вище" посилається на @Qamar
Stack

0

Якщо ви добре з PyCharm, що також рефакторинг звичок, запустіть інструмент "Перейменувати" (Refactor> Rename). У вікні з'являється список, який випадає, і ви побачите у списку версію тексту snake_case (ви можете відкрити вікно та перейти до зміїної справи за допомогою натискання клавіш, щоб це було досить швидко).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.