Comment coller du texte à la fin de chaque ligne? Sublime 2


161

Je suis curieux de savoir s'il existe un moyen de coller du texte à la fin de chaque ligne dans Sublime 2? Et inversement, au début de chaque ligne.

test de la première ligne

test ligne deux

test ligne trois

test ligne quatre

...

Supposons que vous ayez 100 lignes de texte dans l'éditeur et que vous souhaitiez coller des guillemets au début et à la fin de chaque ligne.

Existe-t-il un moyen simple de le faire ou un plugin que tout le monde connaîtrait? Cela me permettait souvent de gagner beaucoup de temps sur divers projets.

Merci.


4
Actuellement, il s'agit de la deuxième démo sur la page d'accueil ... sublimetext.com
TWiStErRob

Réponses:


28

Vous pouvez utiliser la fonction Rechercher et remplacer avec cette expression régulière ^([\w\d\_\.\s\-]*)$pour rechercher du texte et le texte remplacé est "$1".


7
Impressionnant! J'ai donc trouvé que ce qui suit fonctionnait pour moi: Utilisation de regex: (?> \ X0D \ x0A? | [\ X0A- \ x0C \ x85 \ x {2028} \ x {2029}]) trouvera la fin de chaque ligne. Et en utilisant regex: ^ [a-zA-z0-9! @ # $ ") (* &! + _-] trouvera le début de chaque ligne (à condition que tous les caractères soient ajoutés pour que l'expression régulière cherche au début chaque des lignes). Merci @yohann!
Tony H.

5
Si vous faites cela avec une regex dans un éditeur puissant comme Vim ou ST2, vous manquez l'indice. Pourquoi dégrader un éditeur décent en sed?
sehe

Merci d'avoir sauvé 3 heures de ma vie
F.Mayoral

572

Ouais Regex est cool, mais il existe une autre alternative.

  • Sélectionnez toutes les lignes que vous souhaitez préfixer ou suffixer
  • Aller au menu Sélection -> Diviser en lignes ( Cmd/ Ctrl+ Shift+ L)

Cela vous permet de modifier plusieurs lignes à la fois. Vous pouvez maintenant ajouter * Quotes (") ou n'importe quoi * au début et à la fin de chaque ligne.


36
C'est tellement plus facile à faire.
Yada

6
C'est une bien meilleure réponse. Vous pouvez également utiliser shift (Windows / Linux) ou touche d'option (Mac) tout en sélectionnant une région avec votre souris pour obtenir le même résultat.
dbn

5
Vous pouvez souvent vous retrouver en train d'éditer plusieurs lignes comme décrit ci-dessus, mais vous souhaitez ensuite les rassembler en une seule ligne. Raccourci pour joindre plusieurs lignes: ctrl / cmd + J
fionbio

3
C'est une bonne réponse, mais pour un très grand nombre de lignes, cela peut être beaucoup plus gourmand en CPU que d'utiliser find & replace.
Ceilingfish

2
Je pense que cela mérite d'être la réponse préférée
Michael Osofsky

79

Voici le flux de travail que j'utilise tout le temps, en utilisant uniquement le clavier

  1. Ctrl/ Cmd+ ATout sélectionner
  2. Ctrl/ Cmd+ Shift+ LFractionner en lignes
  3. ' Entourez chaque ligne de guillemets

Notez que cela ne fonctionne pas s'il y a des lignes vides dans la sélection.


3
ne fonctionne pas pour moi dans st2, l'étape 3 a supprimé toutes les lignes et l'a remplacée par "l'étape 3 devrait être Home" End"
andrej

@andrej - cela ressemble à un bug. Assurez-vous que vous utilisez la dernière version de st2, et si c'est le cas, signalez le bogue à sublimetext.userecho.com
dbn

1
@dbw exécutant sublime text 2.0.1 build 2217. Publié en tant que bug à sublimetext.userecho.com/topic/184875-
andrej

@andrej Je peux reproduire votre problème si j'ai des lignes vides dans la sélection
Patrick McDonald

52
  1. Sélectionnez toutes les lignes sur lesquelles vous souhaitez ajouter un préfixe ou un suffixe. (Mais si vous souhaitez ajouter un préfixe ou un suffixe uniquement à des lignes spécifiques, vous pouvez utiliser ctrl+ Left mouse buttonpour créer plusieurs curseurs.)
  2. Appuyez sur Ctrl+ Shift+ L.
  3. Appuyez sur la Hometouche et ajoutez un préfixe.
  4. Appuyez sur la Endtouche et ajoutez un suffixe.

Notez, désactivez le retour à la ligne, sinon cela ne fonctionnera pas correctement si vos lignes sont plus longues que la largeur de sublime.


2
c'est le correctif réel. la maison et les touches de fin sont cruciales pour que cela fonctionne correctement
Phil

Dans Sublime Text 3 (pour Mac), les touches d'accueil et de fin ne fonctionnaient pas pour moi. Si vous rencontrez ce problème, vérifiez: coderwall.com/p/upolqw/…
avance le

Pas vraiment @Phil. Vous pouvez également utiliser Cmd + flèche gauche / droite pour naviguer également. Je pense que la même chose fonctionnera sur Windows aussi
Claud H

33

Disons que vous avez ces lignes de code:

test line one
test line two
test line three
test line four

En utilisant Search and Replace Ctrl + Hwith Regex , trouvons ceci: ^et remplacez-le par ", nous aurons ceci:

"test line one
"test line two
"test line three
"test line four

Maintenant , cherchons ceci: $et remplacez-le par ", maintenant nous aurons ceci:

"test line one"
"test line two"
"test line three"
"test line four"

a très bien fonctionné dans sublime text 3, économisé beaucoup de temps
jamescampbell

22

Utilisez la sélection de colonne . La sélection de colonnes est l'une des caractéristiques uniques de Sublime2; il est utilisé pour vous donner plusieurs curseurs correspondants ( tutoriel ici ). Pour obtenir plusieurs curseurs, effectuez l'une des opérations suivantes:

Souris:

  • Maintenez la touche Maj (Windows / Linux) ou option (Mac) enfoncée tout en sélectionnant une région avec la souris.

  • Cliquez sur le bouton central de la souris (ou faites défiler) pour sélectionner également une colonne.

Clavier:

  • Sélectionnez la région souhaitée.
  • Tapez control+ shift+ L(Windows / Linux) ou command+ shift+ L(Mac)

Vous avez maintenant plusieurs lignes sélectionnées, vous pouvez donc taper un guillemet au début et à la fin de chaque ligne. Il serait préférable de profiter des capacités de Sublime et de taper simplement " . Lorsque vous faites cela, Sublime cite automatiquement le texte sélectionné.

Tapez escpour quitter le mode curseur multiple.


3
Vous pouvez également déclencher la sélection de colonnes en cliquant avec le bouton central et en faisant glisser.
Curtis Gibby

2
C'est la manière la plus spécifique de Sublime Text de résoudre le problème et utilise une fonctionnalité fondamentale de Sublime Text. Comme le PO s'est renseigné sur Sublime Text dans le titre, cela devrait être la réponse acceptée.
Dribbler le
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.