web-dev-qa-db-fra.com

Comment sélectionner une autre ligne avec plusieurs curseurs dans Sublime Text?

Dans Sublime Text 2, est-il possible de sélectionner instantanément toutes les autres lignes (ou paires impaires/paires) et de placer plusieurs curseurs sur ces lignes?

Merci.

148
user2136580
  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. Trouver tout: 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 voulez des lignes paires, appuyez: 
  7. Selon le fichier, il peut manquer un curseur au bas du fichier. À l'aide de la souris (zut!) Défiler vers le bas, maintenez enfoncé Ctrl, et cliquez à l'endroit où le curseur manquant devrait être pour l'ajouter.
354
Joe Daley

Vous pouvez le faire facilement:

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

MODIFIER :

97
zessx

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

Merci à Joe Daley pour une très bonne réponse. Bien que je me suis rendu compte 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 rationnelle activée, puis appuyer sur alt + enter. Suivi d'une flèche gauche. Cela placerait un curseur sur des lignes alternatives (les mêmes étapes que celles décrites par Joe Daley)

^.*\n.*$
11
greenjambi

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 sélectionné d'autres lignes, vous pouvez utiliser Split selection into lines commande (Ctrl+Shift+LCmd+Shift+L sur Mac).

Si vous voulez avoir tout 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, en laissant plusieurs curseurs au début des lignes sélectionnées.

7
Riccardo Marotti