Як орієнтуватися по вихідному коду по частинах у CamelCase (замість цілих слів)?


252

Я пам’ятаю, коли я використовував Eclipse, що, утримуючи CTRL та використовуючи стрілки ліворуч або праворуч, Eclipse переміщуватиметься через LongCamelCaseWrittenWordкілька кроків. Одне слово з верблюда на час.

Таким чином, він піде так (труба |представляє фактичну позицію курсору):

|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|

Чи є спосіб, як цього досягти в IntelliJ? В даний час IntelliJ одразу переступає над усім словом.

Використання IntelliJ 9.0


Відповіді:


390

Так, увімкніть Використовувати слова "CamelHumps" у Settings | Editor | General | Smart Keys.


15
CamelHumps робить Ctrl + праворуч, Ctrl + лівий стрибок верблюжими горбами. Як я можу все-таки мати обидві функції, тобто стрибати словами та CamelHumps з різними клавішами?
mafonya

1
в останній ідеї течіяSettings | Editor | General | Smart Keys
Іржі Кремсер

48
Як згадує @mafonya в іншій відповіді, поведінку подвійного клацання можна відновити, знайшовши та відключивши налаштування під назвою "Шануйте" налаштування слів CamelHumps "при виборі подвійного клацання".
Пол Ламмерцма

9
Якщо хтось пропустив це, налаштування "Честь" CamelHumps "..." працюєSettings | Editor | General
Carl G

Я згоден, що це має бути поведінка за замовчуванням. Для тих, хто приходить із Eclipse, це як вбудоване в нашу м’язову пам’ять з першого дня.
П’єр

45

Як відповіли в іншому місці, ви можете включити USE «CamelHumps» слова в Settings | Editor | General | Smart Keysперемикати ярлики для роботи з верблюжого замість цільного слова.

Ви також можете отримати доступ до попередньої поведінки, призначивши комбінації клавіш на відповідні дії в розділі Settings | Appearance & Behavior | Keymap | Editor Actions. Це зображення показує приклад, коли я отримую доступ до попередньої поведінки, додаючи ctrl:

скріншот клавіатури


4
Дивовижно! Це має бути поведінка за замовчуванням у Intellij!
AndiDev

Дякую! Це прекрасно. Подвійне клацання виконує все слово, але ctrl + напрямок використовує випадок "case"
Бретт

19

Ви можете мати обидві функції одночасно:

  1. У розділі "Налаштування-> Редактор-> Загальні-> Розумні клавіші" вимкніть "Використовувати слова CamelHumps".
  2. У "keymap" створіть ярлики для:
    • "Перемістити карету до наступного слова"
    • "Перемістіть карету до наступного слова в різних режимах верблюдів"

Зауважте, що ці кроки відповідають IntelliJ 14, тому вони можуть дещо відрізнятися в інших версіях.


З цікавості ви зробили карту обох? Якщо так, то яку комбінацію ви вибрали?
обирають

Так, я склав карту обох, це корисно, коли у вас є довгі імена класів. Взагалі, ви не хочете мати різні ярлики для кожної програми. Отже, я використовував ctrl+arrowдля цілих слів (тобто ярлик, який використовується повсюдно ), а alt+arrowдля слів camelhumps (це єдиний модифікатор, що залишився, оскільки для кожного вибору використовується зсув)
blue_note

Я переосмислив це ctrl+PgUp/PgDnі Ctrl+(shift)+Tab, оскільки він використовується у всіх браузерах та більшості програм, тому це вже в моїй м’язовій пам’яті.
blue_note

Мені хотілося б alt+arrowрухатися цілими словами та ctrl+arrowпереходити по горбу верблюда. (Це поведінка за замовчуванням у Xcode, яка є моєю "м'язовою пам'яттю".) Я намагаюся це зробити, використовуючи налаштування IntelliJ, але не можу отримати просту ctrl+{anything}реєстрацію. ctrl+alt+{something}здається, працює, як і ні alt+{something}, але ні ctrl+{something}. Я на Mac. Моя поточна клавіатура - Mac OS X 10.5+. Будь-які пропозиції?
mbm29414

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