Sublime Text 3 - Comportamiento rápido de agregar / buscar coincidencias

14

Supongamos que estoy trabajando con un archivo en Sublime Text 3 que contiene múltiples ocurrencias de una variable de un solo carácter c, que quiero renombrar a otro nombre.

Cuando selecciono una instancia de esa variable con mi cursor, Sublime Text resalta automáticamente las otras instancias de esa variable para mí:

Este resaltado visual está habilitado por la configuración: "match_selection": truey muestra claramente que lo sublime es lo suficientemente inteligente como para resaltar solo otras instancias de ese personaje donde es relevante como una variable.

Sin embargo, a pesar de que este resaltado indica que debería ser posible, parece que no hay una manera fácil de seleccionar automáticamente solo estas cvariables resaltadas .

Si quiero cambiar rápidamente el nombre de todas las instancias de la variable cusando múltiples cursores, ya sea con Quick Add Next ( cmd+D) o Quick Find All ( ctrl+cmd+G) en lugar de seleccionar solo esa variable c, obtengo cada instancia del carácter 'c' seleccionado:

Obviamente, esto no es útil en absoluto, ya que no tiene correlación con la variable real; Simplemente seleccionó a ciegas todas las letras "c", independientemente de si son la variable seleccionada o no.

¿Hay alguna manera de obligar a Quick Add Next y Quick Find All a comportarse como las reglas de resaltado que match_selectionutiliza la configuración? Esto sería mucho más útil en este caso que simplemente seleccionar ciegamente cada instancia de los caracteres seleccionados.

¿Me estoy perdiendo de algo? No puedo encontrar una opción de Búsqueda rápida de todas las instancias o la opción Agregar rápida siguiente variable , ni ninguna forma de personalizar el comportamiento predeterminado de Búsqueda rápida de todo y Agregar rápidamente siguiente . Por lo que puedo decir, mis únicas opciones son renombrar manualmente cada instancia de c, o escribir alguna expresión regular personalizada para lograr el mismo resultado que el algoritmo de resaltado original.

Johannes
fuente

Respuestas:

23

El truco es comenzar con una selección vacía, con el cursor justo a la izquierda de la palabra que desea seleccionar. Luego, presione CtrlG(o AltF3en Windows / Linux) para seleccionar todas las instancias de esa palabra:

código lua

o presione D( CtrlDen Win / Lin) para comenzar a seleccionarlos uno a la vez.

MattDMo
fuente
1
Básicamente exactamente lo que estaba buscando, saludos :) -
Johannes
Esto funciona si los quieres todos en un archivo; Solo quiero todos los que están cerca, como se obtiene con Ctrl + D.
Ben Dilts
@BenDilts No estoy seguro de lo que estás preguntando. ¿Que estás tratando de hacer?
MattDMo
Supongamos que tiene un archivo con diez métodos diferentes, cada uno de los cuales tiene una variable local llamada "c". Solo quiero seleccionar rápidamente los que están en un área más pequeña que todo el archivo.
Ben Dilts
2
@BenDilts Coloque el cursor justo a la izquierda del primero y seleccione los que desea usar Ctrl-D, tal como dije en mi respuesta.
MattDMo
0

Al seleccionar y renombrar todas las apariciones de una variable, esto no implica que todas las cadenas deban ser renombradas. Por ejemplo, 'c' puede aparecer en muchas palabras, no siendo variables. Para cambiar SOLAMENTE los casos que son variables, se puede usar el complemento anaconda:

Haga clic con el botón derecho en la variable

Seleccione Anaconda -> Cambiar nombre de objeto debajo del cursor

PD. Se puede hacer doble clic en la variable para verificar cuál sería la selección antes de ejecutar el cambio de nombre.

León
fuente