¿Cómo puedo seleccionar cualquier otra línea con múltiples cursores en Sublime Text?


162

En Sublime Text 2, ¿es posible seleccionar instantáneamente cualquier otra línea (o impar / par) y colocar múltiples cursores en esas líneas?

Gracias.


55
¿No quieres aceptar una respuesta?
Martin Thoma

Respuestas:


381
  1. Buscar: Ctrl+F
  2. Si las expresiones regulares no están habilitadas, habilítelas: Alt+R
  3. Escribe la expresión .*\n.*\n
  4. Encuentra todo: Alt+Enter
  5. Presione la flecha izquierda para deshacerse de las selecciones, dejando solo los cursores:
  6. Ahora tiene un cursor al comienzo de cada línea impar. Si desea líneas pares, presione hacia abajo:
  7. Dependiendo del archivo, puede faltar un cursor en la parte inferior del archivo. Usando el mouse (¡maldición!), Desplácese hasta la parte inferior, mantenga presionado Ctrly haga clic donde debería estar el cursor faltante para agregarlo.

83
También puede usarlo (.*\n){10}por cada 10 líneas
Joe Daley,

21
Como una nueva mejora :(.*(\n|$)){2}
zessx

3
¡bonito! La (.*(\n|$)){2}solución de @ zessx incluye la última línea
woojoo666

3
Solo para tener en cuenta, en Sublime 2 que se ejecuta en OS X 10.11.5, el acceso directo para la búsqueda de RegEx es Alt + Comando + R. También puede habilitar la búsqueda de RegEx presionando Comando + F y luego haciendo clic en el icono que se ve así: [. *]
lustig

97

Puedes hacerlo fácilmente:

  • Seleccione todas sus líneas o todo el documento Ctrl+A
  • Agregue múltiples selectores: Ctrl+ Shift+ L(y en Mac: Comando + Mayús + L)

EDITAR:


12
Aunque no es la respuesta correcta para esta pregunta, esto es lo que quería. gracias por compartir
Rajani Karuturi

Gran y simple pista!
filip

55
Esta solución es lo que necesitaba pero no lo que quiere el OP.
chillido

13

Estaba buscando una manera de seleccionar líneas alternativas en sublime.

Gracias a Joe Daley por una muy buena respuesta. Aunque me di cuenta de que, si usa la expresión regular, no seleccionaría la última línea del archivo si no hay una nueva línea al final del archivo.

Quería mejorar esa respuesta, pero no parece tener suficiente reputación en este momento para comentar la respuesta anterior.

Puede usar la siguiente cadena de búsqueda con la expresión regular activada, y luego presionar alt + enter. Seguido de una flecha izquierda. Esto colocaría un cursor cada uno en líneas alternas (los mismos pasos explicados por Joe Daley)

^.*\n.*$

7

Puedes probar con un complemento: Tools/New Plugin...

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)

Guarda este archivo en tu Packages/User.

Luego, agregue la combinación de teclas para ese complemento:

{ "keys": ["super+alt+l"], "command": "expand_selection_to_other_lines" }

Este comando seleccionará todas las demás líneas. Cuando tiene otras líneas seleccionadas, puede usar el Split selection into linescomando ( Ctrl+ Shift+ L, Cmd+ Shift+ Len Mac).

Si desea tener todo en un solo acceso directo, puede modificar el complemento de esta manera:

import sublime_plugin


class ExpandSelectionToOtherLinesCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.window().run_command("expand_selection", {"to": "line"})
        start_region = self.view.sel()[0]
        self.view.window().run_command("select_all")
        self.view.sel().subtract(start_region)
        self.view.window().run_command("split_selection_into_lines")
        self.view.window().run_command("move", {"by": "characters", "forward": False})

La última línea es solo para eliminar la selección, dejando múltiples cursores al comienzo de las líneas seleccionadas.


1
Wow, esto parece prometedor. ¡Intentaré esto tan pronto como pueda!
user2136580

¡Muchas gracias! Soy bastante nuevo en los complementos. Debe ser divertido. Comenzar a seleccionar cualquier otra línea sería simplemente fantástico. ¡Salud!
user2136580
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.