En Intellij, ¿cómo alterno entre mayúsculas y minúsculas y guión bajo espaciado?

5 minutos de lectura

En mi empresa tenemos dos guías de estilo diferentes para java vs sql. En java tengo un campo llamado historyOfPresentIllness y cuando escribo el sql, quiero nombrarlo history_of_present_illness. ¿Hay un atajo de teclado para cambiar de uno a otro cuando tengo la frase resaltada? ¿O tal vez un complemento que pueda hacer esto?

Mientras pregunto, también puedo preguntar si hay una manera de convertir historyOfPresentIllness a history-of-present-illness. Eso es de java a estilo clojure.

avatar de usuario
dannymo

Dos complementos ofrecen esta función:

Yo uso un complemento llamado Manipulación de cadenas que hace lo que necesitas (y más).

Seleccione historyOfPresentIllness y presiona alternativa / opción+METRO para abrir el menú del complemento, luego presione:

  • 5A snake_case (o a camelCase) que se convierte en history_of_present_illness
  • 6Para guión-caso (o para serpiente_caso) que se convierte en history-of-present-illness

Para hacerlo más fácil, puede configurar un acceso directo en File | Settings | Keymap.


También está el El caso de Carmel enchufar.

CAMBIO+alternativa / opción+tu alterna la selección entre formatos:

historyOfPresentIllness –> history_of_present_illness –> HISTORY_OF_PRESENT_ILLNESS –> HistoryOfPresentIllness –> historyOfPresentIllness

También puede deshacer sus cambios (ahora que se solucionó un error en el complemento).

  • @tieTYT Sí, es bastante molesto porque aparece un mensaje emergente que le dice que el archivo tiene cambios que no se pueden deshacer… si no fuera por eso, habría sido la opción más conveniente.

    – Danny Mo

    27 de junio de 2013 a las 19:06

  • @tieTYT Se me acaba de ocurrir que para simplificar el primer enfoque, podrías grabar una macro Edit > Macros > Start recording macro y luego agregue una asignación de teclas simple para su macro Settings > Keymap > Macros > YourMacro (right-click > Add Keyboard Shortcut)

    – Danny Mo

    27 de junio de 2013 a las 20:43


  • La manipulación de cadenas ahora también contiene acciones para alternar entre todo tipo de casos… Puede configurar un acceso directo a cualquier acción (hay demasiados para tener algún valor predeterminado).

    – Meo

    27 mayo 2015 a las 22:02


  • ¡Oh no importa! Simplemente haga clic (o haga una macro): MAYÚS + F6 (refactorizar), luego cambie el caso con uno de los complementos y luego presione ENTER.

    – Defozo

    23 de junio de 2017 a las 15:34

  • Este complemento es realmente increíble; Funciona de maravilla 🙂

    – Rajesh Goel

    23/09/2021 a las 14:55

avatar de usuario
Qamar

Prensa muy sencilla Clr + F abrir Buscar/Reemplazar Panel y comprobar [✓] expresión regular copiar la expresión regular anterior

Encontrar: [_]{1,1}([a-z])

Reemplazar: \U$1

Prensa [Replace all] botón, disfruta


Gracias @piotrek por _some_awe_var a _someAweVar

Usar Buscar: (\w)[_]{1,1}([a-z])

Reemplazar: $1\U$2

  • Solo para completar, de camelCase a snake_case: find ([A-Z]{1,1}) y reemplazar por _\l$1con ambos expresión regular y Caso de partido opciones alternadas.

    – dic19

    26 de febrero de 2019 a las 22:09


  • Esto es genial, pero en TypeScript, a menudo los miembros privados comienzan con un _ y esto hará que comiencen en mayúsculas.

    – Subdesbordamiento de pila

    30 de julio de 2019 a las 21:03

  • @StackUnderflow uso Encontrar: (\w)[_]{1,1}([a-z]) Reemplazar: $1\U$2

    – Qamar

    1 de agosto de 2019 a las 7:42


  • Supongo que “muy simple” es sarcasmo, ¿no? Elegí más bien el Manipulación de cadenas complemento de la respuesta aceptada 🙂

    – Honza Zidek

    5 oct 2021 a las 18:47

  • creo que (\w)_([a-z]) sería más simple? No hay necesidad de [ ] y { } solo para un símbolo.

    – akvyalkov

    1 de diciembre de 2021 a las 12:16

De snake_case a CamelCase

  • Encontrar: (\w)[_]{1,1}([a-z])
  • Reemplazar: $1\U$2
  • Ajustes:
    • Caso de coincidencia
    • expresión regular

De CamelCase a snake_case:

  • Encontrar: ([A-Z])
  • Reemplazar: \_\L$1
  • Ajustes:
    • Caso de coincidencia
    • expresión regular

  • Para su CamelCase a snake_case, es mejor que se asegure de tener algo seleccionado. Tal como está escrito, reemplazará todas las letras mayúsculas de su proyecto por minúsculas seguidas de un guión bajo. Eso me parece mal. Por lo menos necesitas limitarlo a algo como (?<=[a-z])([A-Z]) para obtener solo mayúsculas que siguen a una minúscula.

    –Rex Schrader

    24 de septiembre de 2020 a las 2:14

  • ¡Gracias! Acabo de copiar muchos campos de snake_case del esquema de la base de datos y usarlo realmente me ahorró un poco de tiempo. Especialmente bueno que puedes navegar a través de cada partido manualmente

    – Solo otro curioso

    17 de marzo de 2021 a las 13:31


  • ¿Cómo se adaptaría la solución camelCase a snake_case para que pueda usarse dentro de un contexto XML? Por ejemplo: de <addPrimaryKey columnNames="somethingLikeThis"/> a <addPrimaryKey columnNames="something_like_this"/>.

    – Payne

    9 ago 2021 a las 18:20

Si está de acuerdo con que PyCharm también refactorice los usos, inicie la herramienta “Renombrar” (Refactorizar > Renombrar). Aparecerá la ventana con una lista desplegable y debería ver la versión del texto de la lista en caso de serpiente (puede abrir la ventana y cambiar a caso de serpiente con pulsaciones de teclas para que sea bastante rápido).

La respuesta anterior es casi perfecta, pero tenga en cuenta que cambiará variables como _something o this._something dentro Something y this.Something. No quería eso en mi caso, ya que el _ inicial se usaba para denotar variables “privadas” (antiguo proyecto JS). Modifiqué ligeramente este enfoque:

Encontrar: (\w)[_]{1,1}([a-z])

Reemplazar: $1\U$2

Esto asegurará que sólo las variables con _ está en el medio se verá afectado.

  • “arriba” no tiene sentido porque las respuestas se pueden ordenar: su “arriba” no es el “arriba” de todos, así que evite usar “arriba” o “abajo” para describir el contenido de este sitio, en su lugar proporcione el nombre del autor, gracias

    –Eric Aya

    13 de febrero de 2019 a las 16:52

  • La respuesta “arriba” a la que se hace referencia es @Qamar

    – Subdesbordamiento de pila

    30 de julio de 2019 a las 21:07

  • “arriba” no tiene sentido porque las respuestas se pueden ordenar: su “arriba” no es el “arriba” de todos, así que evite usar “arriba” o “abajo” para describir el contenido de este sitio, en su lugar proporcione el nombre del autor, gracias

    –Eric Aya

    13 de febrero de 2019 a las 16:52

  • La respuesta “arriba” a la que se hace referencia es @Qamar

    – Subdesbordamiento de pila

    30 de julio de 2019 a las 21:07

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad