Supposons que j'ai plusieurs curseurs sur plusieurs lignes, comme ceci:
foo|
barr|
foobar|
baz|
Comment puis-je pousser automatiquement l'espace blanc à la fin de chaque ligne vers un bord plat, comme ceci?:
foo |
barr |
foobar |
baz |
(Dans ces exemples, |
est censé être mon curseur.)
Lorsque vous venez Tabou Spacede l'arrangement initial, vous obtenez ceci:
foo |
barr |
foobar |
baz |
C'est utile, mais pas ce que je recherche. Je suis à la recherche d'une sorte de raccourci clavier qui me permettra de mettre en retrait un insert multi-curseur irrégulier vers une colonne droite.
text-editing
sublime-text
GladstoneKeep
la source
la source
Tab
à la fin de chaque ligne met en retrait l'insertion de plusieurs curseurs irréguliers dans une colonne droite, mais il n'est pas possible d'obtenir le même effet en utilisant l'expression régulière. J'ai recherché les espaces de fin:\s*$
et les ai remplacés par le caractère de tabulation:\t
- mais\t
n'obtient pas le même effet que d'appuyerTab
manuellement.Réponses:
Vous pouvez utiliser l' alignement sublime de wbond
Vous devrez peut-être l'ajouter à votre fichier de paramètres (Préférences> Paramètres du package> Alignement> Paramètres-Utilisateur:
Remplacer "|" avec le caractère que vous souhaitez aligner.
Edit: Comme mtoast l'a découvert, l'ajout
"\n"
à "alignement_chars" donne l'effet souhaité.L'ajout du nouveau caractère de ligne à "alignement_espace_chars" n'est probablement pas nécessaire et peut supprimer le texte. Cependant, avec mes tests limités, je n'ai pas vu de différence.Maintenez controlet cliquez à la fin de chaque ligne. Appuyez ensuite sur les touches de raccourci d'alignement (pour linux, la valeur par défaut est ctrl+ alt+ a). Vous constaterez que les curseurs sont alignés avec la position de curseur la plus éloignée.
Edit2: L'ajout de nouvelle ligne à
"alignment_space_chars"
supprimera le texte si vous mettez en surbrillance un bloc de texte et que Sublime Alignment ne trouve pas autre chose à aligner sur la ligne (comme un signe égal).De plus, si Sublime Alignment ne trouve pas autre chose à aligner, l'ajout de nouvelle ligne à
"alignment_chars"
remplira la fin des lignes avec des espaces (ou des tabulations selon vos paramètres) pour correspondre à la plus longue ligne mise en évidence.la source
"\n"
(nouvelle ligne) à mon"alignment_chars"
, et obtenu le résultat souhaité. (Remarque: je ne l'ai pas ajouté à"alignment_space_chars"
, ce qui a entraîné la suppression des lignes.) Si vous ajoutez cette suggestion spécifique ("n"
) à votre réponse, je l'accepterai.|
par un seul `\`Vous pouvez également le faire sans package externe en utilisant un hack mineur, avec seulement un peu plus d'effort. Voici comment:
|
représente un curseur dans ces instructions.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 )
Ajoutez des espaces supplémentaires à la fin de chaque mot, jusqu'à ce que chaque curseur atteigne ou dépasse le point où vous voulez que votre colonne (quelle que soit la distance):
( facultatif 1 ) Tapez n'importe quel caractère suivi d'un espace; utilisons
c
:Appuyez Homepour faire passer les curseurs au début des lignes:
Appuyez sur → (right arrow) jusqu'à ce que les curseurs soient là où vous voulez que votre colonne:
Appuyez sur Ctrl+ Shift+ →pour sélectionner tous les espaces blancs suivants
c
, puis appuyez sur Delete:( facultatif 1 ) Appuyez à Deletenouveau pour nettoyer le caractère d'espace supplémentaire que nous avons ajouté à l'étape facultative.
1 Nous utilisons le
c
caractère suivi d'un espace uniquement s'il y a du contenu supplémentaire sur les lignes que nous voulons conserver. Sans cela, Ctrl+ Shift+ →sélectionnerait le premier mot de tout contenu supplémentaire sur les lignes, ce qui rendrait la suppression délicate.la source
ctrl+shift+right
ne traite pas tous les personnages de manière cohérente, il peut donc finir par sélectionner plus qu'un simple espace blanc.Shift-End
Delete
et cela a juste fonctionné. Cela fonctionne-t-il dans certains cas mais pas dans d'autres?c
ligne est avant la fin du mot sur une autre. Quel est le problème que j'ai actuellement. Certaines lignes ne contiennent pas suffisamment de caractères pour défiler vers la droite, donc lorsque vous le faites, vous passez à la ligne suivante, en laissant ce hack comme ça. Il s'agit d'un hack, pas d'un remplacement fourre-tout utile.Pour ceux qui souhaitent mettre en retrait des caractères autres que
=
et|
, j'ai pu installer le package d' alignement et modifier le fichierSublime Text > Preferences > Package Settings > Alignment > Settings - User
pour qu'il ressemble à ce qui suit:J'ai ensuite sélectionné le code suivant:
et pressé
Command + Ctrl + A
pour l'aligner.Tout a été déplacé vers la colonne la plus à gauche que le
{create
texte pouvait occuper tout en étant aligné.la source