Używam wtyczki o nazwie String Manipulation, która ma możliwości, których szukasz (i więcej).
Wybierz historyOfPresentIllness
i naciśnij Alt+, Maby wywołać menu wtyczki, a następnie naciśnij:
- 5- do snake_case (lub camelCase), który konwertuje do
history_of_present_illness
- 6 - na myślnik-literę (lub do snake_case), który jest konwertowany na
history-of-present-illness
Aby to ułatwić, możesz ustawić skrót pod adresem File | Settings | Keymap
.
Szybkie przeszukanie repozytorium wtyczek dla „wielbłąda” pokazało wtyczkę o nazwie
CamelCase, która robi dokładnie to, czego szukasz, z
SHIFT+
ALT+
U, przełączając się między różnymi formatami:
historyOfPresentIllness
-> history_of_present_illness
-> HISTORY_OF_PRESENT_ILLNESS
-> HistoryOfPresentIllness
->historyOfPresentIllness
Jednak po wypróbowaniu tej wtyczki wydaje się, że jest błąd, który uniemożliwia cofnięcie jakichkolwiek zmian. Aktualizacja: wygląda na to, że ten błąd został naprawiony od jakiegoś czasu, więc wtyczka CamelCase jest prawdopodobnie właściwą drogą.
Edit > Macros > Start recording macro
a następnie dodać proste mapowanie klawiszy dla swojego makraSettings > Keymap > Macros > YourMacro (right-click > Add Keyboard Shortcut)
5
dlaSCREAMING_SNAKE_CASE
iJ
jestTrim all spaces
. Używając Mac OS X 10.10.5, PhpStorm 10.0.1, String Manipulation 4.1.135.445.1.Bardzo proste naciśnięcie
Clr + F
otwiera panel Znajdź / zamień i zaznacz [✓] Regex kopiuj poza wyrażeniem regularnymOdnaleźć:
[_]{1,1}([a-z])
Zastąpić:
\U$1
Naciśnij przycisk [Zamień wszystko], Enjoy
Dzięki @piotrek na
_some_awe_var
celu_someAweVar
Użyj Znajdź:
(\w)[_]{1,1}([a-z])
Zastąp:
$1\U$2
źródło
([A-Z]{1,1})
i zamień przez_\l$1
, z przełączonymi opcjami Regex i Match case ._
a, co spowoduje, że zaczną pisać wielką literą.(\w)[_]{1,1}([a-z])
Replace:$1\U$2
Od snake_case do CamelCase
(\w)[_]{1,1}([a-z])
$1\U$2
Od CamelCase do snake_case:
([A-Z])
\_\L$1
źródło
Powyższa odpowiedź jest prawie doskonała, ale pamiętaj, że zmieni ona zmienne, takie jak
_something
lubthis._something
naSomething
ithis.Something
. Nie chciałem tego w moim przypadku, ponieważ początkowe _ było używane do oznaczania zmiennych „prywatnych” (stary projekt JS). Nieznacznie zmodyfikowałem to podejście:Znajdź: (\ w) [_] {1,1} ([az])
Zastąp: 1 $ \ U $ 2
Zapewni to
_
wpływ tylko na zmienne z pośrodku.źródło
Jeśli nie masz nic przeciwko, aby PyCharm również refaktoryzował zastosowania, uruchom narzędzie „Zmień nazwę” (Refaktoryzuj> Zmień nazwę). Pojawi się okno z rozwijaną listą i powinieneś zobaczyć wersję snake_case tekstu na liście (możesz otworzyć okno i przełączyć się na snake_case za pomocą naciśnięć klawiszy, więc może to być dość szybkie).
źródło