Я использую плагин под названием String Manipulation, который имеет нужные вам возможности (и многое другое).
Выберите 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, вероятно, лучший вариант.
Edit > Macros > Start recording macro
а затем добавить простое сопоставление клавиш для своего макросаSettings > Keymap > Macros > YourMacro (right-click > Add Keyboard Shortcut)
5
дляSCREAMING_SNAKE_CASE
иJ
дляTrim all spaces
. Использование Mac OS X 10.10.5, PhpStorm 10.0.1, обработка строк 4.1.135.445.1.Очень просто нажмите,
Clr + F
чтобы открыть панель « Найти / заменить» и установите флажок [✓] Копировать регулярное выражение в прошлое.Найти:
[_]{1,1}([a-z])
Заменить:
\U$1
Нажмите кнопку [Заменить все], наслаждайтесь
Благодаря @piotrek для
_some_awe_var
к_someAweVar
Используйте Найти:
(\w)[_]{1,1}([a-z])
Заменить:
$1\U$2
источник
([A-Z]{1,1})
и replace by_\l$1
, с переключенными опциями Regex и Match case ._
и это заставляет их начинать с заглавной буквы.(\w)[_]{1,1}([a-z])
Заменить:$1\U$2
От snake_case к CamelCase
(\w)[_]{1,1}([a-z])
$1\U$2
Из CamelCase в snake_case:
([A-Z])
\_\L$1
источник
Ответ выше почти идеален, но обратите внимание, что он изменит такие переменные, как
_something
или,this._something
наSomething
иthis.Something
. Я не хотел этого в моем случае, так как ведущий _ использовался для обозначения «частных» переменных (старый проект JS). Я немного изменил этот подход:Найдите: (\ w) [_] {1,1} ([az])
Заменить: $ 1 \ U $ 2
Это гарантирует, что
_
будут затронуты только те переменные, которые находятся в середине.источник
Если вы согласны с тем, что PyCharm также выполняет рефакторинг использования, запустите инструмент «Переименовать» («Рефакторинг»> «Переименовать»). Появится окно с раскрывающимся списком, и вы должны увидеть версию текста snake_case в списке (вы можете открыть окно и переключиться на snake_case нажатием клавиш, так что это может быть довольно быстро).
источник