Texto sublime: buscar y reemplazar dentro de la selección

21

¿Sublime Text 2 permite al usuario realizar búsquedas y reemplazos, limitado a la selección actual?

Debería pensar que debe hacerlo, solo que después de varias búsquedas no he podido encontrar cómo llevarlo a cabo.

JellicleCat
fuente

Respuestas:

23

Hay un botón para eso en ST2.

Captura de pantalla

Henno
fuente
44
Es cierto, hay un botón. ¿Pero cómo lo usas? En particular, ¿cómo se configura "la selección"? Desde mi experiencia, ST2 utiliza la selección desde el momento en que abrió la barra de búsqueda. Entonces, si la barra ya está abierta, primero debe cerrarla (Esc), luego seleccionar el rango de texto que desea examinar y luego abrirlo nuevamente (Ctrl + F o Ctrl + H). Consejo profesional: si la selección abarca varias líneas, no reemplazará su expresión de búsqueda actual.
Robert
3
Cmd + Opt + F en mac para abrir la consola de buscar y reemplazar.
Micah
2
Estoy completamente desconcertado de por qué no hay un atajo de teclado para esa "En selección", espacialmente, ¡ya que existe para todas las demás opciones! ¿Realmente tengo que mover mi mano al mouse para habilitar eso? Parece ir en contra de todos los ST significa ... (estoy usando ST3)
TheStoryCoder
55
@TheStoryCoder, sí, es tonto que eso no sea un atajo de teclado, pero resultó ser fácil de hacer, excepto que el nombre del comando no fue documentado pero tuve suerte y acerté. Aquí está el código para agregar a sus combinaciones de teclas de usuario: {"teclas": ["alt + y"], "comando": "toggle_in_selection", "contexto": [{"tecla": "setting.is_widget", "operator" : "igual", "operando": verdadero}]},
Owen_R
Una nota para otras personas que estaban confundidas como yo: cuando selecciona varias líneas de texto, luego presiona Ctrl + H (que abre Buscar y reemplazar) y comienza a escribir en el campo "Buscar qué", las líneas seleccionadas dejan de verse seleccionadas, pero ellos todavía lo son . Si no fuera por ese problema, ni siquiera habría buscado una solución y encontrado esta publicación. Por cierto, parece recordar que el problema no estaba allí antes, así que tal vez después de un reinicio o algo desaparecerá.
Stefan Monov
7

Si su selección incluye un salto de línea, el botón "dentro de la selección" se activará automáticamente, en ST2

La activación inteligente se ha perdido en ST3, desafortunadamente. Puede hacer un seguimiento de eso aquí http://www.sublimetext.com/forum/viewtopic.php?f=3&t=11679

skqr
fuente
10
Ahora es posible recuperar esta funcionalidad utilizando: "auto_find_in_selection": true
mdrozdziel
¿Cómo lo invoco automáticamente cuando no incluye un salto de línea? ¿Por ejemplo cuando tienes una línea muy larga que abarca muchas "filas"? Cada vez que selecciono esa línea e invoco la búsqueda, deshabilita la opción "en selección".
user2544542
6

Esto es lo que necesita agregar a sus combinaciones de teclas de usuario:

{ "keys": ["alt+y"], "command": "toggle_in_selection", "context":
    [
        { "key": "setting.is_widget", "operator": "equal", "operand": true }
    ]
},

Sí, es tonto que eso no sea un conjunto de teclas predeterminado.

Además, el nombre del comando " toggle_in_selection" no estaba documentado, pero supuse y tuve suerte.


EDITAR PARA AGREGAR:

/*
btw, the way i want to use find by default
(actually, i use replace by default, but same dif),
is for "in_selection" to be true by default,
*unless* the selection is empty.
(
the default is that "in_selection" is *false* by default,
unless the selection contains a newline.
)
i finally got around to digging up how to get that,
which is apparently by changing the *keybindings* you use to pop open the find(/replace) panel?
*/
    { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace", "in_selection": true}},
    { "keys": ["ctrl+f"], "command": "show_panel", "args": {"panel": "replace", "in_selection": false},
    "context":
        [
            { "key": "selection_empty", "operator": "equal", "operand": true}
        ]
    },
Owen_R
fuente
La combinación de teclas ya existe de forma predeterminada.
elsadek
Huh Me pregunto por qué me lo estaba perdiendo, entonces ... las únicas cosas de "alternar" que tenía en mis enlaces predeterminados fueron:toggle_side_bar toggle_full_screen toggle_distraction_free toggle_overwrite toggle_record_macro toggle_setting toggle_comment toggle_case_sensitive toggle_regex toggle_whole_word toggle_preserve_case
Owen_R
3

(con accesos directos específicos de Mac OS X) para reemplazar some namecon new name:

  1. coloca el cursor sobre el texto
  2. Buscar some name:, cmdfescriba some name(a veces es necesario presionar return)
  3. Especificar reemplazar: shiftcmdr, tabtabpara llegar a sustituir campo, tipo new name, no lo hacen de prensareturn
  4. repita altcmdehasta que esté hecho.
AJP
fuente
¿Alguien sabe una forma más rápida de hacer esto? Es bastante ridículo e innecesariamente difícil de recordar
AJP
vea la respuesta de @ oliver-g: ST2 lo hace de manera predeterminada, y si lo ha deshabilitado, simplemente haga clic ctrl+Hy a la izquierda para "Buscar qué:" hay un botón titulado "En la selección"
Peter
2

Simplemente seleccione el texto que desea buscar, luego haga clic en Reemplazar en el menú de búsqueda. Lo hará automáticamente dentro de su selección.

Oliver G
fuente
0

la clave para trabajar con reemplazar dentro de la selección es PRIMERO seleccionar el texto, luego ir a buscar> reemplazar, luego completar el texto de lo que va a encontrar y reemplazar, luego verifique el botón de información sobre herramientas "en la selección" y luego haga clic en "Reemplazar todo". ..

usuario278847
fuente
0

Estoy agregando otra respuesta ya que la solución mejor y más útil (en mi opinión) estaba oculta en un comentario y casi la pierdo (gracias @mdrozdziel).

Seleccione el texto en el que desea buscar, presione Shift+ Hpara que aparezca la barra de herramientas buscar y reemplazar. Hay un botón a la derecha del banco de botones a la izquierda que activará la búsqueda dentro de la selección.

Esto está desactivada por defecto en ST3 pero puede establecer como predeterminada cuando se selecciona más de una línea, agregando "auto_find_in_selection": truea su archivo de preferencias (que se encuentra introduciendo Alt, N, S, Enter).

cyuut
fuente