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.