¿Cómo navegar por el código fuente por partes en CamelCase (en lugar de palabras completas)?

252

Recuerdo cuando estaba usando Eclipse que al mantener presionada la tecla CTRL y usar las flechas izquierda o derecha, Eclipse navegaría LongCamelCaseWrittenWorden varios pasos. Una palabra de caso de camello a la vez.

Entonces irá de la siguiente manera (la tubería |representa la posición real del cursor):

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

¿Hay alguna manera de lograr esto en IntelliJ? Actualmente IntelliJ pasa por alto toda la palabra a la vez.

Usando IntelliJ 9.0

Jan Zyka
fuente

Respuestas:

390

Sí, habilite Usar palabras "CamelHumps" en Settings | Editor | General | Smart Keys.

CrazyCoder
fuente
15
CamelHumps hace que Ctrl + Derecha, Ctrl + Izquierda salte por jorobas de camello. ¿Cómo puedo tener ambas funcionalidades, es decir, saltar por palabras y por CamelHumps con diferentes teclas?
mafonya
1
en la última Idea, el flujo esSettings | Editor | General | Smart Keys
Jiri Kremser
48
Como @mafonya menciona en una respuesta diferente, el comportamiento para hacer doble clic se puede restaurar localizando e inhabilitando la configuración llamada "Honor" CamelHumps "cuando se selecciona con doble clic".
Paul Lammertsma
99
En caso de que alguien más se lo haya perdido, la configuración 'Honor "CamelHumps" ...' está enSettings | Editor | General
Carl G
Estoy de acuerdo en que este debería ser el comportamiento predeterminado. Para cualquier persona que venga de Eclipse, esto está integrado en nuestra memoria muscular desde el primer día.
Pierre
45

Como respondida en otro lugar, puede habilitar el uso "CamelHumps" palabras en Settings | Editor | General | Smart Keyspara cambiar los accesos directos para trabajar con camelCase en lugar de palabras completas.

También puede acceder al comportamiento anterior asignando métodos abreviados de teclado a las acciones apropiadas en Settings | Appearance & Behavior | Keymap | Editor Actions. Esta imagen muestra un ejemplo donde accedo al comportamiento anterior agregando ctrl:

captura de pantalla del mapa de teclas

Carl G
fuente
44
¡Increíble! Este debería ser el comportamiento predeterminado en intellij!
AndiDev
¡Gracias! Esto es perfecto. Hacer doble clic hace toda la palabra, pero ctrl + direction usa el caso vino.
Brett
19

Puede tener ambas funcionalidades al mismo tiempo:

  1. En "Configuración-> Editor-> General-> Teclas inteligentes", deshabilite "Usar palabras CamelHumps".
  2. En "mapa de teclas", cree accesos directos para:
    • "Mover el cursor a la siguiente palabra"
    • "Mueve el cursor a la siguiente palabra en diferentes modos de camelhumps"

Tenga en cuenta que estos pasos corresponden a IntelliJ 14, por lo que pueden ser ligeramente diferentes en otras versiones.

nota azul
fuente
Por curiosidad, ¿los mapeó a ambos? En caso afirmativo, ¿qué combinación elegiste?
elegir el
Sí, mapeé ambos, es útil cuando tienes nombres de clase largos. En general, no desea tener accesos directos diferentes para cada programa. Por lo tanto, solía usar ctrl+arrowpalabras completas (ese es el atajo que se usa en todas partes ), y alt+arrowpara palabras de camelhumps (ese es el único modificador restante, ya que shift se usa para la selección en cada programa)
blue_note
Lo reasigné a ctrl+PgUp/PgDny Ctrl+(shift)+Tab, ya que se usa en todos los navegadores y en la mayoría de los programas, por lo que ya está en mi memoria muscular.
blue_note
Me gustaría usar alt+arrowpara moverme con palabras enteras y ctrl+arrownavegar por joroba de camello. (Este es el comportamiento predeterminado en Xcode, que es mi "memoria muscular".) Estoy tratando de hacer esto usando las Preferencias de IntelliJ, pero no puedo obtener un ctrl+{anything}registro simple . ctrl+alt+{something}parece funcionar, como lo hace alt+{something}, pero no ctrl+{something}. Estoy en una Mac Mi mapa de teclas actual es Mac OS X 10.5+. ¿Alguna sugerencia?
mbm29414
@ mbm29414: funciona bien para mí en macos. incluso si ya está asignado a otra cosa. tal vez sea una configuración externa a intellij
blue_note