web-dev-qa-db-fra.com

Dans Sublime Text 2, comment puis-je mettre en retrait une colonne droite avec plusieurs curseurs sur un bord irrégulier?

Supposons que j'ai plusieurs curseurs le long de plusieurs lignes, comme ceci:

foo|
barr|
foobar|
baz|

Comment puis-je automatiquement pousser les espaces à la fin de chaque ligne sur un bord plat, comme ceci ?:

foo    |
barr   |
foobar |
baz    |

(Dans ces exemples, | est supposé être mon curseur.)

Quand vous venez Tab ou Space de l'arrangement initial, vous obtenez ceci:

foo    |
barr    |
foobar    |
baz    |

C'est utile, mais pas ce que je cherche. Je cherche une sorte de raccourci clavier qui me permette de mettre en retrait un curseur déchiqueté à insérer dans une colonne droite.

33
GladstoneKeep

Vous pouvez utiliser wbond Sublime Alignment

Vous devrez peut-être ajouter ceci à votre fichier de paramètres (Préférences> Paramètres de package> Alignement> Paramètres-Utilisateur:

// The mid-line characters to align in a multi-line selection, changing
// this to an empty array will disable mid-line alignment
"alignment_chars": ["=", "|"],
// If the following character is matched for alignment, insert a space
// before it in the final alignment
"alignment_space_chars": ["=", "|"]

Remplacer "|" avec n'importe quel caractère que vous souhaitez aligner.

Edit: Comme mtoast l’a découvert, ajouter "\n" à "alignment_chars" donne l’effet souhaité. L'ajout du nouveau caractère de ligne à "alignment_space_chars" n'est probablement pas nécessaire et risque de supprimer le texte. Cependant, avec mes tests limités, je n'ai pas vu de différence.

Tenir control et cliquez à la fin de chaque ligne. Appuyez ensuite sur les raccourcis clavier d’alignement (pour Linux, la valeur par défaut est ctrl + alt + a). Vous constaterez que les curseurs sont alignés avec la position du curseur la plus éloignée.

Edit2: Ajouter une nouvelle ligne à "alignment_space_chars" supprime le texte si vous mettez un bloc de texte en surbrillance et que Align Sublime ne trouve rien d'autre à aligner sur la ligne (comme un signe égal).

De plus, si Sublime Alignment ne trouve rien d’autre à aligner, l’ajout de newline à "alignment_chars" comblera la fin des lignes avec des espaces (ou des onglets selon vos paramètres) pour faire correspondre la plus longue ligne mise en surbrillance.

10
d_rail

Vous pouvez également le faire sans paquet externe en utilisant un piratage mineur, avec seulement un peu plus d'effort. Voici comment:

| représente un curseur dans ces instructions.

  1. Créez des curseurs sur toutes les lignes souhaitées en utilisant Ctrl+ Cliquez ou en sélectionnant un bloc de texte et en appuyant sur Ctrl+Shift+L. ( documents de sélection )

  2. Ajoutez des espaces supplémentaires à la fin de chaque mot, jusqu'à ce que chaque curseur se situe au niveau ou au-delà du point où vous souhaitez afficher votre colonne (peu importe la date):

    foo     |
    barr     |
    foobar     |
    baz     |
    
  3. ( optionnel1) Tapez n'importe quel caractère suivi d'un espace; Utilisons c:

    foo     c |
    barr     c |
    foobar     c |
    baz     c |
    
  4. Presse Home pour faire les curseurs aller au début des lignes:

    |foo     c
    |barr     c
    |foobar     c
    |baz     c
    
  5. Presse → (right arrow) jusqu'à ce que les curseurs se trouvent à l'endroit souhaité pour votre colonne:

    foo    | c
    barr   |  c
    foobar |    c
    baz    | c
    
  6. Presse Ctrl+Shift+ pour sélectionner tous les espaces et c suivants, puis appuyez sur Delete:

    foo    |
    barr   |
    foobar |
    baz    |
    
  7. ( optionnel1) Appuyez sur Delete encore une fois pour nettoyer le caractère d’espace supplémentaire que nous avons ajouté à l’étape facultative.


1 Nous utilisons le caractère c suivi d'un espace uniquement s'il y a du contenu supplémentaire sur les lignes que nous souhaitons conserver. Sans ça, Ctrl+Shift+ sélectionnerait le premier mot de tout contenu supplémentaire sur les lignes, ce qui compliquerait la suppression.

43
kogre

Pour ceux qui souhaitent mettre en retrait des caractères autres que = et |, j'ai pu installer le package Alignment et modifier le fichier dans Sublime Text > Preferences > Package Settings > Alignment > Settings - User afin qu'il ressemble à ce qui suit:

{
  "alignment_chars": [
    "{create",
   ]
}

J'ai ensuite sélectionné le code suivant:

  let!(:admin_user) {create(:admin_user, :admin)}
  let!(:another_admin_user) {create(:admin_user, :admin)}
  let!(:superadmin_user1) {create(:admin_user, :superadmin)}
  let!(:superadmin_user2) {create(:admin_user, :superadmin)}
  let!(:nonadmin_user) {create(:admin_user)}

et appuyé sur Command + Ctrl + A pour l'aligner.

  let!(:admin_user)        {create(:admin_user, :admin)}
  let!(:another_admin_user){create(:admin_user, :admin)}
  let!(:superadmin_user1)  {create(:admin_user, :superadmin)}
  let!(:superadmin_user2)  {create(:admin_user, :superadmin)}
  let!(:nonadmin_user)     {create(:admin_user)}

Tout a été déplacé vers la colonne la plus à gauche que le texte {create peut occuper tout en restant aligné.

0
Matthew Hinea