Filtrere ut tekst

Når du samanliknar fleire filer, kan du ha tekstbolkar der skilnadane ikkje er særleg viktige. Du vil til dømes kanskje konsentrere deg om endra kodebolkar, og ignorere endringar i kommentarlinjene. Med tekstfilter kan du be Meld om å ignorere tekst som passar eit mønster (det vil seie eit regulært uttrykk) når det viser skilnadane mellom filer.

Tekstfilter påverkar ikkje berre filsamanlikningar, men òg mappesamanlikningar. Sjekk merknadene om filfiltrering for meir informasjon.

Legg til og bruk tekstfilter

Du kan slå tekstfilter på eller av frå Tekstfilter-fana i Innstillingar-vindauget. Meld kjem med nokre enkle filter som du kanskje synest er nyttige, men du kan òg leggje til dine eigne.

I Meld er tekstfilter regulære uttrykk som vert samanlikna med teksten i filene du samanliknar. All tekst som samsvarar, vert ignorert under samanlikninga; du vil framleis sjå denne teksten i samanlikningsvisinga, men han vil ikkje verte teken med når skilnadane vert funne. Tekstfilter vert brukte i rekkjefølgje, så det er mogleg at det første filteret fjernar tekst som no gjer at det andre filteret treffer, og så bortetter.

Viss du ikkje kjenner til regulære uttrykk, kan du sjå på Python-dokumentet Regular Expression HOWTO.

Få tekstfiltera rett

Det er lett å gjere feil med tekstfiltrering, og Meld si støtte for filtrering er ikkje fullstendig. Særleg kan ikkje eit tekstfilter endre talet på linjer i ei fil. Til dømes, om vi hadde slått på det innebygde filteret Skriptkommentar, og samanlikna desse filene:

comment1.txt

a
b#comment
c
d

comment2.txt

a
b
c
#comment

då vert linjene som byrjar med b vist som identiske (kommentaren vert fjerna), men d-linja vert vist som ulik kommentarlinja på høgresida. Dette skjer fordi #comment vert fjerna frå høgresida, men sjølve linja kan ikkje fjernast; Meld vil vise d-linja som ulik det som vert oppfatta som ei tom linje på den andre sida.

Tomme linjer og filter

Valet Ignorer endringar som set inn eller slettar tomme linjer i fana Tekstfilter krev ei særskild forklaring. Om dette filteret er slått på, vert all endring som berre består av blanke linjer heilt ignorert. Dette kan skje fordi det var ei faktisk endring i mellomrom i teksten, men det kan også oppstå om tekstfiltera dine som er slått på har fjerna alt anna innhald i ei endring, slik at det berre står att blanke linjer.

Du kan bruke dette valet for å omgå nokre av problema og avgrensingane som kjem av at filter ikkje kan fjerne heile linjer, men det kan også vere nyttig i seg sjølv.