كيف يمكنني طي رمز جيم طويل تلقائيا في VIM؟

StackOverflow https://stackoverflow.com/questions/762310

  •  11-09-2019
  •  | 
  •  

سؤال

أنا بانتظام تشغيل رموز C دون قابلة للطي. إنه مهيث لقراءتها إذا لم يكن هناك قابلة للطي، خاصة مع الملفات الطويلة. كيف يمكنني طيها؟

هل كانت مفيدة؟

المحلول

لطي وفقا لبوليات

:set foldmethod=syntax

إذا كنت ترغب في القيام بذلك يدويا على البتات التي تريد طيها

:set foldmethod=manual

ثم قم بإنشاء طيات جديدة عن طريق تحديد / نقل والضغط على ZF

shift-v j j zf

(تجاهل المساحات)

تحرير: انظر أيضا تعليقات هذه الإجابة للحصول على مسافة بادئة وعلامة أضعاف ميثودا.

نصائح أخرى

أعتقد أنك قد تكون قد خلط المصطلحات. هل تحتاج إلى "التفاف" أو "قابلة للطي". التفاف هو الوحدة التي تكون فيها الخطوط التي لن تناسب عادة على الشاشة بسبب طولها، على شكل خطوط متتالية على الشاشة (في الواقع، إنه سطر واحد، في عدة خطوط، من الصعب شرحه، أفضل لرؤية في ممارسة).

في فيم التفاف تم تعيين بواسطة

:set wrap

لتحويله، و

:set textwidth=80

لتحديد مكان وجود VIM التفاف النص (80 حرفا عادة ما يكون مقياسا لطيفا).

للطي من ناحية أخرى هو أمر مختلف تماما. هذا هو واحد حيث يطوي VIM عدة أسطر من التعليمات البرمجية (على سبيل المثال، وظيفة) في سطر واحد من التعليمات البرمجية. إنه مفيد لزيادة قابلية قراءة التعليمات البرمجية. يحتوي VIM على عدة طرق قابلة للطي، يمكنك أن ترى كل منهم إذا كنت

:help folding

ما تبحث عنه، وأعتقد أنه سيكون، قابلة للطي بناء الجملة، ولكن يمكن أن أكون مخطئا. أوصي بقراءة صفحة المساعدة، إنها ليست طويلة، ومفيدة للغاية.

لقد تدحرجت طي البرنامج المساعد ل C و C ++. وبعد يتجاوز ما يتم ذلك مع قابلة للطي بناء الجملة (قد يكون قد تحسن، لا أعرف)، ويترك أقل صاخبة وغير مفيدة حقا أشياء تكشفت، مقارنة بالمسافة البادئة والقابلة للطي المستندة إلى القابلة للطي.

التحذير: من أجل الحصول على أوقات رد الفعل اللائق، اضطررت إلى إجراء بعض التبسيط، وأحيانا تكون النتيجة افسدت تماما (علينا أن تكتب zx لإصلاحه).

فيما يلي Screencast قليلا لمعرفة كيف يطوي البرنامج المساعد رمز مصدر C ++ متوازن بشكل صحيح، والذي لا يتم تعديله حاليا :(

enter image description here

في السادس (بدلا من VIM)، كانت الإجابة:

:set wm=1

هذا يحدد الهامش التفاف إلى حرف واحد قبل نهاية السطر. هذه ليست أفضل مواصفات في العالم مع نوافذ متغيرة الحجم (أصبحت بالشاشات الخضراء عندما كان من الصعب تغيير الحجم).

هذا يعني أن هناك أيضا طريقة بديلة للقيام بذلك في VIM:

:set textwidth=30

يرى: دليل مستخدم Vimdoc 25.1

ربما تريد الإعداد

:set foldmethod=syntax

ولكن لا تضع ذلك يدويا! هذا في عداد المفقودين في واحدة من vims أكبر الميزات التي لديها إعدادات مخصصة لمئات أنواع الملفات المدمجة بالفعل. للحصول على ذلك، أضف هذا إلى ~ / .vimrc

filetype plugin on
filetype indent on

يعتمد اكتشاف FILETYPE في الغالب على الملحق، في هذه الحالة * ملفات .c. انظر: مساعدة: FileType لمزيد من المعلومات. يمكنك أيضا تخصيص هذه الإعدادات المستندة إلى هذه الملفات.

في الواقع، هناك طريقة أخرى مستقيمة للغاية وفعالة، والتي تستخدم foldmethod = marker وحدد foldmarker أن تكون {,}. وبعد ثم تبدو نتيجة أضعاف:

  1. كل الوظائف أضعاف إد. أساسا، يبدو أن الخطوط العريضة في IDE. (ويمكنك أيضا set foldlevel=1أو أكثر، إذا كنت لا تريد طي كل شيء في البداية)

enter image description here

  1. هذا هو ما تبدو وظيفة عادية عندما تفتحها مع المستوى - 1 عبر zo.

enter image description here

بالإضافة إلى ذلك، يحتاج إلى قابلة للطي عن طريق بناء الجملة قليلا من العمل الإضافي، وهنا جيد الدورة التعليمية حوله. ولكن أعتقد أن أضعاف marker={,} يكفي تماما، والأهم من ذلك، إنه بسيط وأنيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top