Si selecciono una variable (no cualquier cadena) en mi código, todas las demás instancias de esa variable obtienen un trazo (contorno blanco) a su alrededor:
¿Existe un método abreviado de teclado que me permita seleccionar todas esas instancias de la variable y editarlas todas a la vez?
Cosas que he probado:
⌘D, ⌘Ky ⌘Ume permite seleccionarlos uno por uno, pero tengo que excluir manualmente las coincidencias de cadenas no variables:
Y usando Ctrl⌘Gsimplemente selecciona todas las coincidencias de cadena:
Claramente, Sublime puede diferenciar entre coincidencias de variables y cadenas. ¿No hay forma de seleccionar solo las coincidencias de variables?
fuente
variable (not just any string)
. Esto simplemente selecciona todas las ocurrencias de la cadena.Sé que la pregunta es sobre Mac, pero llegué aquí buscando la respuesta para Ubuntu, así que supongo que mi respuesta podría ser útil para alguien.
Una forma sencilla de hacerlo: AltF3.
fuente
foo
dentro, no seleccione el primerofoo
. En su lugar, simplemente coloque un cursor en la palabrafoo
y luegoAlt-F3
. Voilafoo
no solo las resaltadas.A pesar de mucho esfuerzo, no he encontrado una forma integrada o asistida por complementos para hacer lo que estás tratando de hacer. Estoy completamente de acuerdo en que debería ser posible, ya que el programa puede distinguirlo
foo
debuffoon
cuando lo resaltas por primera vez, pero nadie parece saber cómo hacerlo.Sin embargo, aquí hay algunos combos de teclas útiles para seleccionar palabras en Sublime Text 2:
Ctrl⌘G- selecciona todas las apariciones de la palabra actual ( AltF3en Windows / Linux)
⌘D- selecciona la siguiente instancia de la palabra actual ( CtrlD)
⌘E, ⌘H- utiliza la selección actual como el campo "Buscar" en Buscar y reemplazar ( CtrlE, CtrlH)
fuente
⌘+D
actúa sobre todas las ocurrencias de la cadena. Por ejemplo, si destacofoo
, sublime maravillosamente traza todas las variablesfoo
s, pero no la cadenafoo
en mieject_buffoon
función. Y sin embargo, usando los combos de teclas anteriores, me veo obligado a⌘+K
eliminar manualmente las coincidencias de cadenas para evitar tener unaeject_bufbarn
función. ¡Debe haber una mejor manera!foo_
(foo y el espacio después) o_foo_
(espacios tanto antes como después) y luego usar⌘-D
oCtrl-⌘-D
.foo
a menudo se muestra como(foo)
,_foo,
,(foo,
, y_foo}
, por lo_foo_
es bastante insatisfactoria.Esto funcionó para mí. Coloque el cursor al comienzo de la palabra que desea reemplazar, luego
CtrlK` CtrlD` CtrlD...
Eso debería seleccionar tantas instancias de la palabra como desee, luego puede escribir el reemplazo.
fuente
La magia es que debes comenzar con una selección vacía, así que coloca el cursor delante de la palabra / carácter que deseas seleccionar y presiona Ctrl+ D.
fuente
Para mí, este es el mayor error en Sublime. Alt+ F3es difícil de alcanzar / recordar, y Ctrl+ Shift+ Gno tiene sentido teniendo en cuenta que Ctrl+ Des "agregar la siguiente instancia a la selección".
Agregue esto a sus enlaces de teclas de usuario (Preferencias> Enlaces de teclas):
Ahora puede resaltar algo, presione Ctrl+ Shift+ D, y agregará cualquier otra instancia en el archivo a la selección.
fuente
Se menciona por @watsonic que en Sublime Texto 3 en Mac OS, comenzando con una selección vacía , simplemente ⌃⌘G( AltF3en Windows) hace el truco, en lugar de ⌘D+ ⌃⌘Gde Sublime Text 2.
fuente
Como dijo el usuario 1767754, la clave aquí es no hacer ninguna selección inicialmente.
Simplemente coloque el cursor dentro del nombre de la variable, no haga doble clic para seleccionarlo. Para las variables de un solo carácter, coloque el cursor al frente o al final de la variable para no hacer ninguna selección inicialmente.
Ahora sigue presionando Cmd+ Dpara la siguiente selección de variables o Ctrl+ Cmd+ Gpara seleccionar todas las variables a la vez. Seleccionará mágicamente solo las variables.
fuente
En caso de que alguien más se haya topado con esta pregunta mientras buscaba una forma de reemplazar una cadena en varios archivos, es Command+ Shift+F
fuente