COMP هو حل EMACS الأصلي للبحث عن حوادث التعبيرات العادية في الملفات وتصفحها وتصفحها. تسمح الواجهة التفاعلية بإجراء تصنيف شامل لجميع النتائج لاستبعاد إيجابيات كاذبة وتؤيل المطابقات المناسبة أثناء مراجعة التعليمات البرمجية.
M-x package-install RET comb
M-x package-install-file RET /path/to/comb/
( add-to-list 'load-path " /path/to/comb/ " )
( require 'comb )هذا هو تجول سريع لبعض ميزات المشط. لأداء البحث:
انتقل إلى دليل الجذر للمستودع الذي تريد التدقيق فيه ؛
تشغيل Mx comb .
اضغط على c لإدخال وضع التكوين ؛
املأ الحقول المطلوبة وأخيراً إجراء بحث.
إذا كانت هناك بعض النتائج لتصفحها ، فسيتم عرض المخزن المؤقت *Comb* ، من هنا ، من الممكن أن تصل إلى النتائج ( ! ) وتغيير حالتها إلى المعتمدة ( a / A ) ، أو رفضها ( r / R ) أو غير محددة ( u / U ، الافتراضي).
تعمل الإجراءات المذكورة أعلاه على النتيجة الحالية التي يمكن نقلها إلى التالي ( n ) أو السابق ( p ) ، عند القيام بذلك ، يتم تحديث المخزن المؤقت *Comb* لإظهار الملف الذي يحتوي على النتيجة ، والتي يتم تمييزها الآن. يتم عرض النتائج التي تطابق مرشح الحالة فقط (مع f ) ويتم عرض REGEXP مرشح NOTES (تعيين مع F ). بالإضافة إلى ذلك ، يولد t مخزن مؤقت يحتوي على قائمة النتائج المعروضة حاليًا ، ويسمح ذلك بإجراء البحث عن المقتطفات والقفز إلى النتيجة.
أخيرًا ، من الممكن حفظ الجلسة الحالية للملفات ( s ) وتحميلها مرة أخرى لاستئناف التدقيق ( l ).
راجع المساعدة ( h ) للحصول على قائمة بجميع الميزات و Nechbindings.
الأنماط التي تستخدمها المشط هي regexps بنكهة EMACs (انظر (elisp) Regular Expressions ). يمكن استخدام الأداة المساعدة Mx regexp-builder لتجربة regexps بشكل تفاعلي قبل إجراء عملية بحث ، فقط تأكد من استخدام بناء الجملة المناسب ( Cc TAB string ) واتركها المحيطة " .
يقبل Comb أيضًا قائمة بعصاصات عمليات الاسترجاعات التي يمكن استخدامها لإنشاء نتائج بحث إضافية ، على سبيل المثال ، قادمة من أداة Linting خارجية. يتم تنفيذ هذه الوظائف مع تعيين default-directory على الدليل الجذري والمخزن المؤقت الحالي للملف الذي تم معالجته حاليًا ، فهي تقبل مسارًا نسبيًا كوسيطة ويجب عليهم إرجاع قائمة النطاقات في النموذج (BEGIN . END) .
فيما يلي مثال رد الاتصال:
( defun my-callback ( filename )
" Match only the first occurrence of 'qwerty'. "
( when ( re-search-forward " qwerty " nil t )
( list ( cons ( match-beginning 0 ) ( match-end 0 ))))) الأخطاء في تنفيذ رد الاتصال ليست قاتلة ، يتم الإبلاغ عنها فقط في *Messages* المخزن المؤقت.
يمكن تكوين بعض الوجوه والخيارات ، ألقِ نظرة على مجموعة تخصيص comb ( Mx customize-group RET comb ).
بالإضافة إلى ذلك ، يمكن تغيير جميع الإرشادات الرئيسية في المخزن المؤقت *Comb* عن طريق تغيير Keymap comb-keymap . على سبيل المثال ، لاستخدام الأسهم للتنقل في استخدام النتائج:
( define-key comb-keymap ( kbd " <left> " ) 'comb-prev )
( define-key comb-keymap ( kbd " <right> " ) 'comb-next )هذا لا يخلص من المفاتيح الأصلية على الرغم من. قد يكون من المريح استبدال Keymap بالكامل بدلاً من ذلك لتجنب الاصطدام مع أوضاع موجودة:
( setq comb-keymap ( make-sparse-keymap ))
( define-key comb-keymap ( kbd " x " ) 'comb-quit )
( define-key comb-keymap ( kbd " ? " ) 'comb-help )
( define-key comb-keymap ( kbd " <left> " ) 'comb-prev )
( define-key comb-keymap ( kbd " <right> " ) 'comb-next )
; ; ... راجع comb-default-keybindings Alist للحصول على الوظائف المستخدمة من قبل keybindings الافتراضية.