متوفر أيضًا بلغات أخرى: English · Español · Português · Français
أداة مقارنة نصين: إيجاد الفرق بين نصّين بدقة
الصق نصين وشاهد كل ما تغيّر بينهما فوراً، بالأسطر أو الكلمات أو الأحرف، دون رفع حرف واحد إلى أي خادم.
ما هي أداة مقارنة النصوص
أداة مقارنة النصوص صفحة تأخذ نصين — نسخة أصلية ونسخة معدَّلة — وتُظهر لك بالضبط ما تغيّر بينهما: أي سطر أُضيف، وأي سطر حُذف، وأي كلمة استبدلت أخرى داخل السطر نفسه. لا تحتاج أن تقرأ الفقرتين كلمة كلمة بحثاً عن الفرق؛ تلصق النصين في حقل الأصلي وحقل المعدَّل، وتظهر النتيجة وأنت تكتب.
تصلح كمقارنة نصين لأي شيء نصي تقريباً: نسختان من عقد، رد بريد إلكتروني قبل التحرير وبعده، إجابتان من نموذج لغوي على السؤال نفسه، أو سطرا كود قبل commit وبعده. النتيجة عرض متجاور يحاذي السطور المتقابلة تلقائياً، فلا تبحث بعينك عن أين بدأ الاختلاف — الأداة تحدده لك.
كيف تستعملها
- الصق النصين. ضع النسخة الأولى في حقل الأصلي، والنسخة الثانية في حقل المعدَّل. ولديك زر تبديل الجانبين إن لصقتهما بالترتيب المعكوس.
- اختر طريقة المقارنة. من صف المقارنة بـ اختر أسطر أو كلمات أو أحرف بحسب ما تريد إبرازه، وفعّل تجاهل حالة الأحرف أو تجاهل المسافات إن كانت هذه الفروق لا تهمك.
- اقرأ النتيجة فوراً. تحت الحقلين يظهر عرض متجاور مرقَّم في وضع الأسطر، مع سطر عدّ يلخص كم سطراً أُضيف وحُذف وعُدِّل، وزر نسخ بصيغة diff موحّد إن أردت نسخة قابلة للّصق في patch.
كيف تعمل المقارنة فعلاً
المحرك خلف الأداة خوارزمية الفروق O(ND) التي نشرها يوجين مايرز سنة 1986، وهي العائلة نفسها التي يبني عليها git وأمر diff في يونكس. الطريقة الساذجة لمقارنة نصين تبني جدول أطول سلسلة فرعية مشتركة بحجم N × M، أي أن مقارنة ملفين من 2000 سطر تحجز أربعة ملايين خانة في الذاكرة قبل أن تحسب أي شيء. مايرز لا يبني هذا الجدول؛ يبحث للخارج بحسب مسافة التحرير بين النصين، فتتعلق التكلفة بمقدار الاختلاف بينهما لا بطولهما.
هذا فارق محسوس في الاستعمال اليومي: مقارنة ملفين من 4000 سطر تغيّر فيهما سطر واحد بالضبط أخذت هنا 3.3 مللي ثانية، لأن الاختلاف الفعلي صغير رغم أن النصين طويلان. والسيناريو الذي تنتجه الخوارزمية أصغري بالضمان الرياضي نفسه الذي قدّمه مايرز: لا يوجد تسلسل إدراجات وحذوفات يحوّل النص الأول إلى الثاني بعدد خطوات أقل. وهذه الضمانة لم تُفترض هنا بل جرى التحقق منها فعلياً: قُورن 14,641 زوجاً من كل السلاسل الممكنة حتى أربعة رموز على أبجدية من ثلاثة رموز بجدول مسافة تحرير محسوب بالقوة الغاشمة، إلى جانب 400 زوج عشوائي أطول يصل إلى 40 عنصراً، وخرجت كل النتائج أصغرية وأعادت بناء الهدف بالضبط.
لكن سيناريو الأسطر وحده لا يكفي لعرض مفيد؛ فإضاءة سطر كامل لأن كلمة واحدة فيه تغيّرت تخفي أكثر مما تُظهر. لذلك تُقارَن كل الأسطر المعدَّلة مرة ثانية، كلمةً كلمة، بالخوارزمية نفسها على مستوى أصغر. في مثال مثل the quick brown fox مقابل the quick red fox يُبرز العرض كلمة brown في الجانب الأصلي وكلمة red في الجانب المعدَّل فقط، لا السطر بأكمله.
الأوضاع الثلاثة وما لا تفعله الأداة
الأوضاع الثلاثة تخدم مستويات مختلفة من الدقة. وضع الأسطر هو الأنسب لملفات الكود والفقرات الطويلة، ووضع الكلمات يناسب الجمل القصيرة، أما وضع الأحرف فيقارن العناقيد الحرفية (graphemes) لا وحدات الترميز الخام. والفرق يظهر بوضوح مع الإيموجي المركّبة: إيموجي العائلة 👨👩👧👦 حرف واحد في نظر القارئ، لكن خاصية length في جافاسكربت نفسها تقول إنه 11 وحدة. استبدله بـ 👍 وهذه الأداة تخبرك بحذف واحد وإضافة واحدة فقط، بينما أداة تقطع بوحدات الترميز كانت ستقول 11 حذفاً وإضافتين، وتُبرز شيئاً بلا معنى.
وتقطيع الأسطر يتعرف على نهايات الأسطر الثلاث كلها — CRLF وLF وCR منفرداً — فلا يظهر الملف نفسه محفوظاً على ويندوز ثم على ماك وكأن كل سطر فيه تغيّر، وهي أشهر نتيجة خاطئة تقع فيها أدوات المقارنة السريعة. وللبحث حدّ معلَن بصراحة: هو مسقوف عند مسافة تحرير قدرها 3000، فإن كان النصان لا يكاد يجمعهما شيء — 2500 سطر مختلفة تماماً مثلاً تعني مسافة 5000 — تقول الأداة إن المقارنة أكبر من أن تُحاذى بدقة، بدل أن تعرض محاذاة واثقة وخاطئة. ولاحظ أيضاً أن التحرير هنا يعني إدراجاً وحذفاً لا استبدالاً: تحويل kitten إلى sitting يكلّف 5 تحريرات بهذا القياس، بينما مسافة ليفنشتاين التي تسمح بالاستبدال أيضاً تقول 3 فقط — رقم مختلف عمداً، فلا تفاجأ به.
وحدودها معلنة كذلك: إنها تقارن نصاً لا ملفات، فلا PDF ولا Word ولا صوراً ولا مجلدات — الصق النص الذي تريد مقارنته مباشرة. وهي تُظهر الفروق ولا تدمجها؛ لا يوجد زر يطبّق تغييراً من جانب على الآخر، فالقرار يبقى لك. وتجاهل حالة الأحرف وتجاهل المسافات يغيّران ما يُحتسب فرقاً فقط لا ما يُعرض: النص الذي تراه على الشاشة هو ما كتبته أنت تماماً، حرفاً بحرف.
لماذا هي مجانية
الأداة تعمل بالكامل داخل متصفحك: بلا حساب تنشئه، وبلا علامة مائية على أي شيء، وبلا نسخة مدفوعة تخفي وراءها ميزة أساسية. ما تراه في وضع الأسطر ووضع الكلمات ووضع الأحرف متاح كله بلا قيد، لأن حساب الفروق نفسه خفيف على أي جهاز، ولا يستدعي خادماً يُدار أو فاتورة تُدفع شهرياً.
وهذه نقطة تستحق أن تُقال بوضوح لا أن تُترك شعاراً: لا شيء يُرفع من نصيك. معظم أدوات مقارنة النصوص على الإنترنت ترسل الأصلي والمعدَّل معاً إلى خادم ليقارنهما هناك، وهذا مقبول لجملة عابرة لكنه مقلق حين يكون النص عقداً، أو ملف إعدادات فيه بيانات دخول، أو مسودة لم تُنشر بعد. وهذه الأداة لا خادم لها أصلاً لترسل إليه؛ المقارنة تجري في المتصفح، ولا شيء يُحفظ — أعد تحميل الصفحة فيعود الحقلان فارغين.