سؤال
هناك العديد من الأسئلة حول كيفية الحصول على رمز قابلة للطي في emacs ، دون الحاجة إلى إضافة أي شخصيات خاصة مثل "علامات" في التعليقات على سبيل المثال. قال أحدهم إنه لم يكن هناك حل مثالي ".
يبدو أنه يمكن القيام به عن طريق تحليل مصدر البرنامج الذي يتم كتابته والبحث عن قوائم أو قوسين ، أو للقيام بذلك بناءً على المسافة البادئة. يمكنك أيضًا استخدام مجموعة من البرامج النصية التي تستخدم طرقًا مختلفة.
فلماذا يتم قبوله بشكل شائع أنه لا توجد طريقة "مثالية" ومباشرة للحصول على طقم رمز في EMAC؟ هل هناك شيء في Emacs أو بنيةه يجعل من الصعب البرمجة؟ إذا كان الأمر سهلاً ، بعد سنوات عديدة من الأشخاص الأذكياء الذين يستخدمون emacs ، فأنت تعتقد أن شخصًا ما كان قد كتبه.
المحلول
يجب أن تلعب مع Hideshow (hs-minor-mode
) مدموج مع fold-dwim.el
. إنه يفعل بالضبط ما اقترحته - يبحث عن مطابقة الأقواس/Parens ، ويمكن إعداده للتراجع عن المسافة البادئة.
يوجد حل قوي قابل للطي لمعظم اللغات الشائعة ، وإذا لم يكن هناك ، فإن جميع الحزم القابلة للطي قابلة للتخصيص للغاية. في الواقع ، الجانب السلبي الوحيد هو انتشار طرق الطي (fold-dwim
يساعد قليلا مع ذلك) ؛ اعتدت أن أفكر أنه نظرًا لأن لا أحد يستطيع أن يشيرني إلى حل نهائي ، كان طي صعبًا أو مستحيلًا - في الواقع ، يكون العكس صحيحًا. عليك فقط تجربة القليل لمعرفة ما هو أفضل بالنسبة لك.
لقد استخدمت folding.el
(على سبيل المثال لتجميع الأشياء في بلدي .emacs
), outline-minor-mode
, والآن Hideshow. هناك بعض الفرص لعدم عمل أي منهم بالطريقة التي تريدها تمامًا بالخروج من الصندوق (على سبيل المثال ، قد تحتاج إلى إعداد مخطط تفصيلي ، أو تحديد علامات طي folding.el
) ، ولكن اتضح أن تكون سهلة. يمكن أن تكون مفاتيح المفاتيح الافتراضية باروكية إلى حد ما ، ولكن يتم علاج هذا fold-dwim
و/أو hideshow-org
(موصى به بشدة لـ Hideshow ، راجع صفحة Hideshow Emacswiki ؛ يمكنك أيضًا التقليد hideshow-org
سلوك أنماط قابلة للطي أخرى مع بعض elisp السريع والكهف و fold-dwim
). بمجرد معرفة الإعداد المفضل لديك ، ما عليك سوى تشغيله تلقائيًا عبر الخطافات أو المتغيرات المحلية العازلة ، وشاهد الرمز الخاص بك بعيدًا :) (انظر أدناه ، لاحظ النقر القابل للنقر +
في الهامش).
alt text http://img198.imageshack.us/img198/4029/screenshot1oc.png
نصائح أخرى
يجب أن تنظر في CEDET. إنه يعمل على ما يرام ، والعديد من الميزات الفاخرة الأخرى التي ربما تبحث عنها إذا كنت تتحول من IDE إلى EMAC.
على وجه التحديد ، ابحث عن وضع "وضع الدعامة الدلالية العالمية"
لا تحتاج إلى أي شيء إضافي ، فقط قم بتمكين وضع المخطط التفصيلي لأنواع الملفات التي تريد طيها.
ولكن في الواقع ، هناك حلول مختلفة ل emacs. لقد أدرجت بعضهم (تلك التي صادفتها) http://en.wikipedia.org/w/index.php؟title=code_folding&oldid=375300945#cite_note-2.
على الرغم من أن هناك أشياء أفتقدها: في بعض الحالات ، أود الجمع بين العديد من الآليات: على سبيل المثال ، للتخفيض ، أود استخدام طي قائم على الخطوط العريضة (للأقسام) والطي القائم على المسافة البادئة (من أجل الاقتباسات ، كتل التعليمات البرمجية وما إلى ذلك) - من أجل عدم إزعاجها بتنفيذ محلل كامل للتخفيض.
ها هم:
طي قائم على الرمز في emacs
إن طي الرمز المميز في emacs فظيع من قبل طي وضع صغير.
قائم على المسافة البادئة في emacs
يمكن للمرء استخدام set-selective-display
وظيفة في emacs لإخفاء الخطوط بناءً على مستوى المسافة البادئة ، كما هو مقترح في رمز عالمي قابل للطي ملاحظة.
طي يعتمد على بناء الجملة في emacs
يتم دعم الطي المعتمد على بناء الجملة في emacs بواسطة:
ال الخطوط العريضة و الجميع إلى الخارج أوضاع لـ "مخطط" مخصص خاص ؛
بواسطة هيدشو وضع صغير لبعض لغات البرمجة ؛
ايضا،
- بواسطة الدلال-ترجمة وضع صغير و
senator-fold-tag
أمربناء الجملة مدعوم من قبل متعلق بدلالات الألفاظ, - وكذلك عن طريق وضع المستند لتعليقات Javadoc أو Doxygen ،
- بواسطةوضع تكساس-فولد
sgml-fold-element
يأمر،- NXML-OTLN مكتبة في أوضاع اللغة المقابلة ، وربما في أوضاع أخرى لبناء جملة معين.
- بواسطة الدلال-ترجمة وضع صغير و
يتم توحيد عدة آليات قابلة للطي من قبلأضعاف واجهه المستخدم.
أنظر أيضا http://www.emacswiki.org/emacs/categoryhidestuff.
طي المناطق التي يختارها المستخدم في emacs
يتم تنفيذ طي المناطق التي يختارها المستخدم في emacs بواسطة إخفاء المنطقة يأمر.
لقد كنت استخدم وضع طي لبعض الوقت. مع قالب إدخال تلقائي و Abrevs ، يعمل بشكل جيد بالنسبة لي لبعض الطوب اللطيف من التعليمات البرمجية.
لطالما كانت القدرة على إنتاج المخزن المؤقت المطوي (للطباعة/البريد الإلكتروني) رغبة في لي. بعض العلامات القابلة للطي هي للاختباء الآمن / كلمة المرور.
نعم أخيرًا رمز قابلة للطي موجود في emacs. جرب Yafolding الحاضر في مكتبة حزمة melpa.org.