Come incollare il testo alla fine di ogni riga? Sublime 2


161

Sono curioso di sapere se esiste un modo per incollare il testo alla fine di ogni riga in Sublime 2? E viceversa, all'inizio di ogni riga.

test line one

test line due

linea di test tre

linea di test quattro

...

Supponi di avere 100 righe di testo nell'editor e desideri incollare le virgolette all'inizio e alla fine di ogni riga.

C'è un modo semplice per fare questo o un plugin di cui qualcuno sarebbe a conoscenza? Ciò mi risparmierebbe molto tempo su vari progetti.

Grazie.


4
Attualmente questa è la seconda demo sulla homepage ... sublimetext.com
TWiStErRob

Risposte:


28

È possibile utilizzare la funzione Cerca e sostituisci con questa regex ^([\w\d\_\.\s\-]*)$per trovare il testo e il testo sostituito è "$1".


7
Eccezionale! Quindi ho trovato il seguente funzionato per me: Usando regex: (?> \ X0D \ x0A? | [\ X0A- \ x0C \ x85 \ x {2028} \ x {2029}]) troverà la fine di ogni riga. E usando regex: ^ [a-zA-z0-9! @ # $ ") (* &! + _-] troverà l'inizio di ogni riga (a condizione che tutti i caratteri vengano aggiunti al regex da cercare all'inizio ciascuno delle righe) Grazie @yohann!
Tony H.

5
Se lo stai facendo con una regex in un potente editor come Vim o ST2, ti manca l'indizio. Perché degradare un editor decente in sed?
Vede il

Grazie per aver salvato 3 ore della mia vita
F. Mayoral

572

Sì, Regex è bello, ma ci sono altre alternative.

  • Seleziona tutte le linee che vuoi aggiungere come prefisso o suffisso
  • Vai al menu Selezione -> Dividi in linee ( Cmd/ Ctrl+ Shift+ L)

Ciò consente di modificare più righe contemporaneamente. Ora puoi aggiungere * Virgolette (") o qualsiasi altra cosa * all'inizio e alla fine di ogni riga.


36
È molto più facile da fare.
Yada,

6
Questa è una risposta molto migliore. Puoi anche usare shift (Windows / Linux) o il tasto opzione (Mac) mentre selezioni una regione con il mouse per ottenere lo stesso risultato.
dbn

5
Potresti trovarti spesso a modificare più righe come descritto sopra, ma poi desideri riunirle nuovamente in un'unica riga. Scorciatoia per unire più righe: ctrl / cmd + J
fionbio

3
Questa è una buona risposta, ma per conteggi di linee molto grandi, può essere molto più impegnativo per la CPU rispetto all'utilizzo di trova e sostituisci.
Ceilingfish,

2
Penso che questa meriti di essere la risposta preferita
Michael Osofsky,

79

Ecco il flusso di lavoro che uso sempre, usando solo la tastiera

  1. Ctrl/ Cmd+ ASeleziona tutto
  2. Ctrl/ Cmd+ Shift+ LDividi in linee
  3. ' Circonda ogni riga tra virgolette

Nota che questo non funziona se ci sono linee vuote nella selezione.


3
non funziona per me in st2, il passaggio 3 ha eliminato tutte le righe e lo ha sostituito con "il passaggio 3 dovrebbe essere Home" End"
andrej,

@andrej: sembra un bug. Assicurati di utilizzare la versione più recente di st2 e, in tal caso, segnala il bug su sublimetext.userecho.com
dbn

1
@dbw in esecuzione sublime text 2.0.1 build 2217. Inserito come bug su sublimetext.userecho.com/topic/184875-
andrej l'

@andrej Posso riprodurre il tuo problema se ho delle righe vuote nella selezione
Patrick McDonald

52
  1. Seleziona tutte le linee su cui desideri aggiungere il prefisso o il suffisso. (Ma se vuoi aggiungere un prefisso o un suffisso solo a linee specifiche, puoi usare ctrl+ Left mouse buttonper creare più cursori.)
  2. Premi Ctrl+ Shift+ L.
  3. Premere il Hometasto e aggiungere il prefisso.
  4. Premere il Endtasto e aggiungere il suffisso.

Nota, disabilita il wordwrap, altrimenti non funzionerà correttamente se le tue linee sono più lunghe della larghezza sublime.


2
questa è la soluzione reale. le chiavi di casa e di fine sono cruciali affinché questo funzioni correttamente
Phil

In Sublime Text 3 (per Mac), le chiavi home e end non funzionavano per me. Se hai questo problema, controlla: coderwall.com/p/upolqw/…
avance

Non proprio @Phil. Puoi anche usare Cmd + Freccia sinistra / destra per navigare. Penso che lo stesso funzionerà anche su Windows
Claud H

33

Supponiamo che tu abbia queste righe di codice:

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

Usando Cerca e sostituisci Ctrl + Hcon Regex troviamo questo: ^e sostituirlo con ", avremo questo:

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

Ora cerchiamo questo: $e sostituiamolo con ", ora avremo questo:

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

ha funzionato davvero bene nel sublime testo 3, risparmiando tonnellate di tempo
jamescampbell l'

22

Usa la selezione delle colonne . La selezione delle colonne è una delle caratteristiche uniche di Sublime2; è usato per darti più cursori abbinati ( tutorial qui ). Per ottenere più cursori, effettuate una delle seguenti operazioni:

Topo:

  • Tieni premuto il tasto MAIUSC (Windows / Linux) o il tasto Opzione (Mac) mentre selezioni una regione con il mouse.

  • Fare clic sul pulsante centrale del mouse (o scorrere) per selezionare anche come colonna.

Tastiera:

  • Seleziona la regione desiderata.
  • Digita control+ shift+ L(Windows / Linux) o command+ shift+ L(Mac)

Ora si dispone di più linee selezionate, in modo da potreste digitare una virgoletta all'inizio e alla fine di ogni riga. Sarebbe meglio sfruttare le capacità di Sublime e digitare " . In questo caso, Sublime cita automaticamente il testo selezionato.

Digitare escper uscire dalla modalità cursore multiplo.


3
Puoi anche attivare la selezione delle colonne facendo clic con il pulsante centrale e trascinando.
Curtis Gibby,

2
Questo è il modo più specifico per Sublime Text di risolvere il problema e utilizza una funzionalità fondamentale di Sublime Text. Poiché il PO ha chiesto informazioni su Sublime Text nel titolo, dovrebbe essere la risposta accettata.
Dribbler
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.