Как перемещаться по исходному коду по частям в 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 с разными ключами?
мафоня

1
в последней идее потокSettings | Editor | General | Smart Keys
Иржи Кремсер

48
Как @mafonya упоминает в другом ответе, поведение для двойного щелчка можно восстановить, найдя и отключив параметр «Honor» CamelHumps «настройки слов при выборе двойного щелчка».
Пол Ламмерцма

9
В случае, если кто-то еще пропустил это, настройка «Честь« CamelHumps »...»Settings | Editor | General
Carl G

Я согласен, что это должно быть поведение по умолчанию. Для тех, кто приезжает из «Затмения», это как будто встроено в нашу мышечную память с первого дня.
Пьер

45

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

Вы также можете получить доступ к предыдущему поведению, назначив сочетания клавиш для соответствующих действий в Settings | Appearance & Behavior | Keymap | Editor Actions. Это изображение показывает пример, где я получаю доступ к предыдущему поведению, добавляя ctrl:

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


4
Потрясающие! Это должно быть поведение по умолчанию в intellij!
AndiDev

Спасибо! Это потрясающе. Двойной щелчок делает целое слово, но ctrl + направление использует случай.
Бретт

19

Вы можете использовать обе функции одновременно:

  1. В «Настройки-> Редактор-> Общие-> Умные ключи» отключите «Использовать слова CamelHumps».
  2. В «раскладке клавиш» создайте ярлыки для:
    • «Переместить каретку к следующему слову»
    • "Переместить каретку к следующему слову в режиме различных верблюдов"

Обратите внимание, что эти шаги соответствуют IntelliJ 14, поэтому они могут немного отличаться в других версиях.


Для любопытства, вы их оба нанесли на карту? Если да, то какую комбинацию вы выбрали?
избрать

Да, я сопоставил оба, это полезно, когда у вас длинные имена классов. В общем, вы не хотите иметь разные ярлыки для каждой программы. Итак, я использовал ctrl+arrowдля целых слов (это ярлык используется везде ), а также alt+arrowдля слов верблюжьих гормонов (это единственный оставшийся модификатор, поскольку shift используется для выбора в каждой программе)
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.