مدقق الاختلافات
الصق نصّين وشاهد الاختلافات مُميَّزة بالألوان.
الاختلاف
- الصق النص الأصلي في "النص A".
- الصق النسخة المعدَّلة في "النص B".
- اختر "أسطر" للكود/الإعدادات أو "كلمات" للنص العادي.
- فعِّل "تجاهل المسافات" أو "تجاهل حالة الأحرف" إذا أضافت التغييرات غير المرئية ضوضاء.
- اقرأ المخرجات المُميَّزة أدناه — الأخضر مُضاف، والأحمر محذوف.
ماذا تفعل؟
يقارن المدقق نصّين ويُظهر بدقة ما أُضيف، وما حُذف، وما بقي دون تغيير. يعامل وضع "الأسطر" كل سطر كوحدة — مناسب لشيفرة المصدر وملفات الإعدادات التي يتغيّر فيها السطر كاملاً. يُقسِّم وضع "الكلمات" عند المسافات البيضاء وهو أفضل للنصوص العادية التي تهمك فيها التعديلات على مستوى الكلمة.
مثال
النص A:
function greet(name) {
console.log("Hello, " + name);
} النص B:
function greet(name) {
if (!name) name = "world";
console.log(`Hello, ${name}!`);
} الاختلاف في وضع الأسطر:
function greet(name) {
+ if (!name) name = "world";
- console.log("Hello, " + name);
+ console.log(`Hello, ${name}!`);
} الأخطاء الشائعة والملاحظات
حين يبدو السطران متطابقين لكن الاختلاف يُعلَّم، يكون السبب غالبًا حرفًا غير مرئي أو فارقًا في حالة الأحرف. المشتبَه بهم المعتادون.
- نهايات الأسطر CRLF مقابل LF. تنتهي ملفات ويندوز بـ \r\n، ويونكس بـ \n. حتى فارق حرف واحد يُعلِّم كل سطر. فعِّل "تجاهل المسافات"، أو وحِّد باستخدام dos2unix أو إعدادات محرِّرك.
- مسافات آخر السطر. ما لم تُتجاهل المسافات، يختلف "foo " عن "foo". إعداد الحفظ الذي يحذف المسافات النهائية يجعل كل سطر مسَّ يبدو متغيّرًا.
- Tab مقابل مسافات. إعادة تنسيق تحوّل Tab إلى مسافات (أو العكس) تجعل كل سطر مُزاح يبدو مختلفًا في وضع التطابق الصارم. فعِّل "تجاهل المسافات"، أو وحِّد تنسيق الطرفين أولاً.
- علامة ترتيب البايت (BOM). الملفات المحفوظة كـ UTF-8 with BOM تبدأ بحرف غير مرئي. ذلك "السطر" الأول سيظهر دائمًا متغيِّرًا عند المقارنة مع ملف بلا BOM. أزل BOM في محرِّرك أو محرِّر hex قبل اللصق.
- الاقتباسات الذكية أو المسافات غير الفاصلة. قد يستبدل اللصق من معالج النصوص " بـ " أو المسافة العادية بمسافة غير فاصلة. تبدو متطابقة بصريًا لكن نقاط شفرتها مختلفة. وحِّد النص إلى ASCII بسيط قبل المقارنة.
- فروق في حالة الأحرف فقط. تختلف API عن api ما لم تُفعِّل "تجاهل حالة الأحرف". المطابقات تُظهر النص الأصلي كما هو؛ تُخفَّف المقارنة فقط.
الأسئلة الشائعة
ما الفرق بين وضع الأسطر ووضع الكلمات؟
يقارن وضع الأسطر سطرًا بسطر — إن تغيّر أي حرف على سطر، يُعلَّم السطر كاملاً محذوفًا من A ومضافًا في B. يُقسِّم وضع الكلمات عند المسافات ويُعطي فارقًا أدقّ، وهو أنسب للنصوص العادية. لشيفرة المصدر وملفات الإعدادات يكون وضع الأسطر هو المناسب دائمًا تقريبًا.
لماذا تظهر الأسطر المتطابقة شكلاً كأنها متغيّرة؟
عادةً أحد ثلاثة فروق غير مرئية: نهايات الأسطر (CRLF على ويندوز مقابل LF على يونكس)، أو مسافات نهاية السطر، أو علامة ترتيب البايت (BOM) في بداية الملف. فعِّل "تجاهل المسافات" لتجاوز الأوليين. لـ BOM، افتح الملف في محرِّر hex أو احذف البايتات الأولى قبل اللصق.
هل يقارن حرفًا بحرف؟
لا. يقارن وضع الأسطر لكل سطر، ووضع الكلمات لكل رمز مفصول بمسافة. المقارنة الحرفية تُخرج ناتجًا مزعجًا لمعظم النصوص الحقيقية. إذا احتجت مقارنة حرفية لسلاسل قصيرة، الصقها في وضع الكلمات — بلا مسافات، يصبح كل حرف فعليًا رمزه الخاص.
ما أقصى حجم للمُدخَلات؟
تجري المقارنة في الذاكرة، فالحد العملي هو ذاكرة متصفحك. بضعة ميغابايت لكل جانب تعمل بسلاسة؛ عشرات الميغابايت قد تُجمِّد اللسان مؤقتًا لأن عرض HTML المُظلَّل أبطأ من المقارنة نفسها. للملفات الضخمة شغِّل diff محليًا باستخدام GNU diff أو git diff.
هل يمكن تجاهل حالة الأحرف أو المسافات؟
نعم — كلاهما مفاتيح في شريط الأدوات. "تجاهل المسافات" يُعامل أي تتابع من المسافات كمكافئ، وهو مفيد للكود المُعاد تنسيقه. "تجاهل حالة الأحرف" يُعامل "Hello" و"hello" كواحد. تبقى المطابقات تعرض النص الأصلي؛ تُخفَّف المقارنة فقط.
هل تحفظون النص الذي ألصقه في الصندوقين؟
لا. لا نحتفظ بأي شيء تلصقه هنا — لا "قبل" ولا "بعد". ما تقارنه يُحذف فور إغلاق الصفحة أو تحديثها. لا سجلات ولا تحليلات لمحتواك. للاطمئنان، أدوات مطوري المتصفح ستريك كل شيء.