Sostituire in un’intera cartella
senza riscrivere come sono conservati i file.

Quasi tutti gli strumenti di sostituzione su una cartella leggono ogni file come UTF-8, lo riscrivono in UTF-8 con fine riga LF, e ti restituiscono un diff pieno di modifiche che non avevi chiesto. Linelark legge ogni file con la sua codifica e i suoi fine riga, e lo riscrive identico.

Studio 1.17.1 · macOS 14+8.5 MB da scaricare
Linelark con i risultati di Trova nei file accanto al file aperto da uno di essi, la barra di ricerca impostata su In Files
Trova nei file, su una cartella apertaStudio 1.17.1 · macOS 14+

Cosa succede quando lanci Sostituisci nei file.

Trova ▸ Sostituisci nei file percorre la cartella aperta, decide quali file sono candidati, e riscrive solo quelli che corrispondono davvero. Ogni passaggio esiste per evitare un modo preciso in cui una sostituzione su una cartella va storta.

01

Ogni file mantiene la sua codifica

Il file viene decodificato con la codifica in cui era conservato, la sostituzione si applica al testo, e viene riscritto con quella stessa codifica e i suoi fine riga originali. Nulla viene normalizzato lungo il percorso.

02

I fine riga sopravvivono al viaggio

I file CRLF e CR vengono normalizzati in LF *in memoria*, perché un modello che attraversa un a capo si comporti allo stesso modo ovunque, poi riscritti con i fine riga che il file aveva all’arrivo.

03

L’output di compilazione viene saltato, non cercato

.git, .svn, node_modules, .build, build, DerivedData, .venv e __pycache__ vengono saltati in blocco — l’enumeratore non ci entra, quindi un’occorrenza dentro node_modules non può essere riscritta per sbaglio.

04

I binari vengono riconosciuti e lasciati stare

Un byte NUL in qualsiasi punto del primo kilobyte di un file è il segnale classico, e ogni file che ne contiene uno viene saltato prima che una regex lo sfiori.

05

I file che hai aperto non vengono mai sovrascritti

I buffer già aperti nell’editor sono esclusi dal percorso, quindi una sostituzione su una cartella non può buttare via in silenzio modifiche non salvate in una scheda dietro la finestra.

06

I percorsi vengono normalizzati prima del confronto

L’enumerazione delle cartelle restituisce /private/var mentre un URL costruito a mano dice /var. Senza appianare quella differenza, la protezione « salta questo file aperto » sembrerebbe funzionare senza fare nulla.

I limiti, come sono fissati nel codice.

Sono le costanti vere, non arrotondate. Sapere dove uno strumento si ferma è ciò che lo rende affidabile per un repository a cui tieni.

ComportamentoValore
File più grande considerato4 MB. Oltre, il file viene saltato sia dalla ricerca sia dalla sostituzione.
Risultati restituiti da una ricercaFino a 5.000 occorrenze nell’intera cartella, e fino a 500 in uno stesso file.
Sintassi dei modelliEspressioni regolari ICU tramite NSRegularExpression, con le opzioni per maiuscole e parola intera.
Filtro sui fileSeparato da spazi, virgole o punti e virgola. *.swift, swift e un nome di file esatto funzionano tutti.
File nascostiSaltati. L’enumeratore gira con skipsHiddenFiles.
Cosa fa una scrittura fallitaIl file viene annotato per nome nel resoconto e l’operazione continua. Non viene mai lasciato scritto a metà.

Letto nel codice pubblicato di Linelark Studio 1.17.1, non nella sua documentazione. Quando i due non concordano, è questo che viene rilasciato.

Dove questo non ti aiuterà.

Una sostituzione su una cartella è un’operazione distruttiva su file che non hai aperto. Ecco i casi in cui conviene prendere altro.

  • Non c’è un’anteprima della sostituzioneLa ricerca ti mostra le occorrenze; Sostituisci nei file riferisce cosa ha cambiato a cose fatte. Se vuoi ispezionare ogni modifica prima che avvenga, sostituisci file per file nell’editor.
  • Non c’è un annullamento tra fileL’annullamento è proprio di ogni buffer. Una sostituzione su una cartella non è un’azione annullabile in un colpo solo: eseguila in un repository con l’albero di lavoro pulito, e leggi il diff.
  • I file oltre 4 MB escono silenziosamente dal perimetroVengono saltati invece che segnalati come saltati. Un log più grande di così non verrà cercato e non te lo dirà.
  • L’elenco delle esclusioni non è configurabile.git, node_modules, DerivedData e gli altri sono fissi in questa versione. Se ti serve cercare dentro uno di essi, questo strumento non sa farlo.

Aprilo sui tuoi
file.

Notarizzato da Apple, macOS 14 e versioni successive, Intel e Apple silicon.

Scarica Studio 1.17.1 8.5 MB · tutte le versioni, con le loro impronte