Comment puis-je sélectionner une ligne sur deux avec plusieurs curseurs dans Sublime Text?


163

Dans Sublime Text 2, est-il possible de sélectionner instantanément une ligne sur deux (ou paire / impaire) et de placer plusieurs curseurs sur ces lignes?

Merci.


5
Tu ne veux pas accepter une réponse?
Martin Thoma

Réponses:


382
  1. Trouver: Ctrl+F
  2. Si les expressions régulières ne sont pas déjà activées, activez-les: Alt+R
  3. Tapez l'expression .*\n.*\n
  4. Tout trouver: Alt+Enter
  5. Appuyez sur la flèche gauche pour supprimer les sélections, ne laissant que les curseurs:
  6. Vous avez maintenant un curseur au début de chaque ligne impaire. Si vous vouliez des lignes paires, appuyez sur:
  7. En fonction du fichier, il peut y avoir un curseur manquant en bas du fichier. En utilisant la souris (putain!), Faites défiler vers le bas, maintenez enfoncée Ctrlet cliquez à l'endroit où le curseur manquant devrait être pour l'ajouter.

83
Vous pouvez également utiliser (.*\n){10}pour 10 lignes
Joe Daley


3
agréable! La (.*(\n|$)){2}solution de @ zessx inclut la dernière ligne
woojoo666

3
Juste à noter, dans Sublime 2 fonctionnant sous OS X 10.11.5, le raccourci pour la recherche RegEx est Alt + Commande + R. Vous pouvez également activer la recherche RegEx en appuyant sur Commande + F puis en cliquant sur l'icône qui ressemble à ceci: [. *]
lustig

97

Vous pouvez le faire facilement:

  • Sélectionnez toutes vos lignes, ou tout le document Ctrl+A
  • Ajouter plusieurs sélecteurs: Ctrl+ Shift+ L(et sous Mac: Commande + Maj + L)

ÉDITER :


12
mais pas la bonne réponse à cette question, c'est ce que je voulais. merci pour le partage
Rajani Karuturi

Astuce géniale et simple!
filip

5
Cette solution est ce dont j'avais besoin mais pas ce que veut l'OP.
cri le

13

Je cherchais un moyen de sélectionner des lignes alternatives en sublime.

Merci à Joe Daley pour une très bonne réponse. Même si j'ai réalisé que, si vous utilisez regex, il ne sélectionnerait pas la dernière ligne du fichier s'il n'y a pas de nouvelle ligne à la fin du fichier.

Je voulais améliorer cette réponse mais je ne semble pas avoir assez de réputation pour le moment pour commenter la réponse ci-dessus.

Vous pouvez utiliser la chaîne de recherche suivante avec l'expression régulière activée, puis appuyez sur Alt + Entrée. Suivi d'une flèche vers la gauche. Cela placerait un curseur chacun sur des lignes alternées (mêmes étapes que celles expliquées par Joe Daley)

^.*\n.*$

7

Vous pouvez essayer avec un plugin: 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)

Enregistrez ce fichier dans votre Packages/User.

Ensuite, ajoutez la liaison de clé pour ce plugin:

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

Cette commande sélectionnera toutes les autres lignes. Lorsque vous avez d'autres lignes sélectionnées, vous pouvez utiliser la Split selection into linescommande ( Ctrl+ Shift+ L, Cmd+ Shift+ Lsur Mac).

Si vous voulez tout avoir dans un seul raccourci, vous pouvez modifier le plugin comme ceci:

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 dernière ligne sert uniquement à supprimer la sélection, laissant plusieurs curseurs au début des lignes sélectionnées.


1
Wow, cela semble prometteur - je vais essayer cela dès que possible!
user2136580

Merci beaucoup! Je suis assez nouveau dans les plugins. Devrait être amusant. Commencer à sélectionner toutes les autres lignes serait tout simplement fantastique. À votre santé!
user2136580
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.