# 2

Kai Willadsen
kai.willadsen@gmail.com 2012
Δημήτρης Σπίγγος
dmtrs32@gmail.com 2014

# Φιλτράρισμα κειμένου

Όταν συγκρίνετε πολλά αρχεία, μπορεί να έχετε ενότητες κειμένου όπου οι διαφορές δεν είναι πραγματικά σημαντικές. Για παράδειγμα, ίσως θέλετε να εστιάσετε στις αλλαγμένες ενότητες του κώδικα και να αγνοήσετε κάθε αλλαγή στις γραμμές σχολίων. Με τα φίλτρα κειμένου μπορείτε να πείτε στο Meld να αγνοήσει το κείμενο που ταιριάζει με ένα υπόδειγμα (δηλ., μια κανονική έκφραση), όταν εμφανίζονται διαφορές μεταξύ αρχείων.

Τα φίλτρα κειμένου δεν επηρεάζουν απλά τις συγκρίσεις αρχείων, αλλά επηρεάζουν επίσης τις συγκρίσεις φακέλων. Σημειώστε το σημειώσεις φιλτραρίσματος αρχείων για περισσότερες λεπτομέρειες.

# Προσθήκη και χρήση φίλτρων κειμένου

Μπορείτε να ενεργοποιήσετε και να απενεργοποιήσετε τα φίλτρα κειμένου από την καρτέλα Φίλτρα κειμένου στον διάλογο Προτιμήσεις. Το Meld έρχεται με λίγα απλά φίλτρα που μπορεί να βρείτε χρήσιμα, αλλά μπορείτε να προσθέσετε επίσης τα δικά σας.

In Meld, text filters are regular expressions that are matched against the text of files you're comparing. Any text that is matched is ignored during the comparison; you'll still see this text in the comparison view, but it won't be taken into account when finding differences. Text filters are applied in order, so it's possible for the first filter to remove text that now makes the second filter match, and so on.

Αν δεν είσαστε εξοικειωμένοι με κανονικές εκφράσεις, μπορεί να θέλετε να κοιτάξετε το Python Κανονική έκφραση HOWTO.

# Καταλαβαίνοντας τα φίλτρα κειμένου

Είναι εύκολο να παρανοήσετε το φιλτράρισμα κειμένου και η υποστήριξη του Meld για το φιλτράρισμα δεν είναι πλήρης. Ειδικά, ένα φίλτρο κειμένου δεν μπορεί να αλλάξει τον αριθμό των γραμμών σε ένα αρχείο. Για παράδειγμα, αν έχουμε το ενσωματωμένο φίλτρο Σχόλιο σεναρίου ενεργό και συγκρίνουμε τα ακόλουθα αρχεία:

## comment1.txt

`a b#comment c d`

## comment2.txt

`a b c #comment`

τότε οι γραμμές που αρχίζουν με `b` θα εμφανιστούν ως ταυτόσημες (το σχόλιο αφαιρέθηκε) αλλά η γραμμή `d` θα εμφανιστεί ως διαφορετική στη γραμμή σχολίου στα δεξιά. Αυτό συμβαίνει επειδή το `#comment` αφαιρείται από τα δεξιά, αλλά η ίδια η γραμμή δεν μπορεί να αφαιρεθεί· το Meld θα εμφανίσει τη γραμμή `d` ως διαφορετική στο ότι βλέπει μια κενή γραμμή στην άλλη πλευρά.

# Κενές γραμμές και φίλτρα

Η προτίμηση Παράβλεψη αλλαγών που εισάγουν ή διαγράφουν κενές γραμμές στην καρτέλα Φίλτρα κειμένου απαιτεί ειδική εξήγηση. Αν αυτό το ειδικό φίλτρο είναι ενεργό, τότε κάθε αλλαγή που αποτελείται μόνο από κενές γραμμές αγνοείται ολότελα. Αυτό μπορεί να συμβεί επειδή υπήρξε μια πραγματική αλλαγή κενού χώρου στο κείμενο, αλλά ενδέχεται επίσης να προκύψει αν τα ενεργά σας φίλτρα κειμένου έχουν αφαιρέσει όλα τα άλλα περιεχόμενα από μια αλλαγή, αφήνοντας μόνο κενές γραμμές.

Μπορείτε να χρησιμοποιήσετε αυτήν την επιλογή για να παρακάμψετε κάποια προβλήματα και περιορισμούς που δημιουργούνται από τα φίλτρα επειδή δεν μπορούν να αφαιρέσουν ολόκληρες γραμμές, αλλά μπορεί να είναι επίσης χρήσιμα.