Jak poruszać się po kodzie źródłowym według części w CamelCase (zamiast całych słów)?

251

Pamiętam, kiedy korzystałem z Eclipse, że trzymając CTRL i używając strzałek w lewo lub w prawo, Eclipse poruszał się LongCamelCaseWrittenWordw kilku krokach. Jedno słowo wielbłąda na raz.

Będzie to wyglądało następująco (potok |reprezentuje rzeczywistą pozycję kursora):

|LongCamelCaseWrittenWord -> CTRL+RIGHT_ARROW ->
Long|CamelCaseWrittenWord -> CTRL+RIGHT_ARROW ->
LongCamel|CaseWrittenWord -> CTRL+RIGHT_ARROW ->
LongCamelCase|WrittenWord -> CTRL+RIGHT_ARROW ->
LongCamelCaseWritten|Word -> CTRL+RIGHT_ARROW ->
LongCamelCaseWrittenWord|

Czy istnieje sposób, jak to osiągnąć w IntelliJ? Obecnie IntelliJ przesuwa się po całym słowie jednocześnie.

Korzystanie z IntelliJ 9.0

Jan Zyka
źródło

Odpowiedzi:

389

Tak, włącz opcję Użyj słów „CamelHumps” w Settings | Editor | General | Smart Keys.

CrazyCoder
źródło
15
CamelHumps sprawia, że ​​Ctrl + Strzałka w prawo, Ctrl + Strzałka w lewo przeskakuje przez garby wielbłądów. Jak mogę nadal mieć obie funkcje, tj. Przeskakiwać według słów i CamelHumps z różnymi klawiszami?
mafonya
1
w najnowszym pomyśle przepływ jestSettings | Editor | General | Smart Keys
Jiri Kremser
48
Jak wspomniała @mafonya w innej odpowiedzi, zachowanie podwójnego kliknięcia można przywrócić, lokalizując i wyłączając ustawienie o nazwie „Honor„ CamelHumps ”ustawienia słów przy wybieraniu podwójnego kliknięcia”.
Paul Lammertsma
9
Na wypadek, gdyby ktokolwiek tego nie zauważył, ustawienie „Honor” CamelHumps… ... jest włączoneSettings | Editor | General
Carl G
Zgadzam się, że powinno to być zachowanie domyślne. Dla każdego, kto pochodzi z Eclipse, jest to jak wbudowane w naszą pamięć mięśniową od pierwszego dnia.
Pierre
45

Jak odpowiedział gdzie indziej, można włączyć użyć „CamelHumps” słowa w Settings | Editor | General | Smart Keysprzełączyć skróty do pracy z CamelCase zamiast całego słowa.

Możesz również uzyskać dostęp do poprzedniego zachowania, przypisując skróty klawiaturowe do odpowiednich działań w obszarze Settings | Appearance & Behavior | Keymap | Editor Actions. Ten obraz pokazuje przykład, w którym uzyskuję dostęp do poprzedniego zachowania poprzez dodanie ctrl:

zrzut ekranu mapy klawiszy

Carl G.
źródło
4
Niesamowite! To powinno być domyślne zachowanie w intellij!
AndiDev,
Dziękuję Ci! To jest doskonałe. Podwójne kliknięcie robi całe słowo, ale ctrl + kierunek wykorzystuje wielkość liter.
Brett,
19

Możesz mieć obie funkcje jednocześnie:

  1. W „Ustawienia-> Edytor-> Ogólne-> Klawisze inteligentne” wyłącz „Użyj słów CamelHumps”.
  2. W „mapie klawiszy” utwórz skróty dla:
    • „Przenieś karetkę do następnego słowa”
    • „Przenieś karetkę do następnego słowa w innym trybie wielbłądów”

Pamiętaj, że te kroki odpowiadają IntelliJ 14, więc mogą się nieco różnić w innych wersjach.

niebieska notatka
źródło
Czy z ciekawości zmapowałeś oba z nich? Jeśli tak, którą kombinację wybrałeś?
wybiera
Tak, zmapowałem oba, przydaje się, gdy masz długie nazwy klas. Ogólnie rzecz biorąc, nie chcesz mieć różnych skrótów dla każdego programu. Użyłem więc ctrl+arrowcałych słów (jest to skrót używany wszędzie ) i alt+arrowsłów wielbłądów (to jedyny pozostały modyfikator, ponieważ shift jest używany do wyboru w każdym programie)
blue_note
Odwzorowałem to na ctrl+PgUp/PgDni Ctrl+(shift)+Tab, ponieważ jest on używany we wszystkich przeglądarkach i większości programów, więc jest już w mojej pamięci mięśniowej.
blue_note
Chciałbym użyć, alt+arrowaby poruszać się po całych słowach i ctrl+arrownawigować garbem wielbłądów. (Jest to domyślne zachowanie w Xcode, które jest moją „pamięcią mięśniową”.) Próbuję to zrobić przy użyciu Preferencji IntelliJ, ale nie mogę uzyskać prostej ctrl+{anything}rejestracji. ctrl+alt+{something}wydaje się działać, jak działa alt+{something}, ale nie ctrl+{something}. Jestem na komputerze Mac. Moja obecna mapa klawiszy to Mac OS X 10.5+. Jakieś sugestie?
mbm29414,
@ mbm29414: działa dobrze dla mnie na macos. nawet jeśli jest już przypisany do czegoś innego. może to jakieś ustawienie zewnętrzne względem intellij
blue_note