كيف يمكنني إصلاح المسافة البادئة من الملف بأكمله في السادس؟

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

  •  21-08-2019
  •  | 
  •  

سؤال

في فيم، ما هو الأمر لتصحيح المسافة البادئة كافة الأسطر؟

وفي كثير من الأحيان سوف نسخ ولصق رمز إلى محطة نائية ويكون كل شيء عابث. أريد أن يثبت ذلك في ضربة واحدة.

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

المحلول

و=، يمكن الأمر البادئة تأخذ الاقتراحات. لذا، gg للحصول على بداية الملف، = إلى البادئة، G إلى نهاية الملف، gg=G.

نصائح أخرى

وقبل لصق إلى المحطة، في محاولة :set paste (ثم :set nopaste بعد الانتهاء من ذلك). هذا وسوف إيقاف السيارات في الهامش، في خط التفاف، الخ الميزات التي يتم العبث معجون الخاص بك.

وتحرير: أيضا، أود أن أشير إلى أن نتيجة أفضل بكثير من = الطعج عادة ما يمكن الحصول عليها باستخدام برنامج خارجي. على سبيل المثال، أركض :%!perltidy في كل وقت. ويمكن أيضا astyle، cindent، وما إلى ذلك يمكن استخدامها. وبطبيعة الحال، يمكنك تعيين هؤلاء إلى السكتة الدماغية الرئيسية - وخريطة مختلفة منها لنفس المفاتيح اعتمادا على نوع الملف

إذا كنت تريد أن reindent كتلة كنت في دون الحاجة إلى كتابة أي الحبال، يمكنك القيام به:

[[=]]

وسيد كل الأوامر هو

وgg=G

وهذه مسافة بادئة الملف بأكمله!

وفيما يلي بعض من الأوامر بسيطة وأنيقة تستخدم لخطوط المسافة البادئة بسرعة في فيم أو gVim.

لوضع مسافة بادئة للجميع خطوط تحت خط الحالي

=G

لالبادئة السطر الحالي

==

لخطوط n المسافة البادئة تحت خط الحالي

n==

وعلى سبيل المثال، بمحاذاة أطراف 4 خطوط تحت خط الحالي

4==

لالبادئة كتلة من التعليمات البرمجية، انتقل إلى واحد من الأقواس واستخدام القيادة

=%

ويمكنك استخدام مرتبة تطبيق / المرافق بمحاذاة أطراف HTML و XML الملفات ويعمل بشكل جيد جدا في حك تلك الملفات.

وتجميل ملف XML

:!tidy -mi -xml %

وتجميل ملف HTML

:!tidy -mi -html %

والصحافة الهروب ثم اكتب أدناه تركيبات سريعة:

gg=G

و1G=G. يجب أن البادئة جميع الخطوط في الملف. 1G يأخذك السطر الأول، سوف = بدء صناعة السيارات في المسافة البادئة وسوف G نهائي يأخذك السطر الأخير في الملف.

في فيم، استخدم :insert. هذا وسوف تبقي كل ما تبذلونه من التنسيق وعدم القيام autoindenting. لمزيد من المعلومات help :insert.

و:set paste هو صديقك يمكنني استخدام المعجون وينتهي نسخ كود بين النوافذ. قبل أن تحولت إلى :set paste:set nopaste) نسخ / لصق وقدم لي يناسب لهذا السبب بالذات.

وإذا كنت لا تريد استخدام :set paste، في منتصف نقرة، set nopaste، يمكنك أيضا لصق محتويات الحافظة:

"*p
"+p

وبهذه الطريقة لم يكن لديك لترك الوضع العادي. إذا كان لديك للصق + أو * يعتمد على كيفية اختيار النص، انظر :help quoteplus.

همة-التنسيق التلقائي تنسيقات الملفات المصدر باستخدام برامج خارجية محددة لغتك، على سبيل المثال rbeautify "جوهرة لملفات روبي" شبيبة تجميل "حزمة الآلية الوقائية الوطنية لجافا سكريبت.

لملفات معقدة C ++ همة لا تحصل دائما على حق التنسيق عند استخدام الأمر تصفية = همة و. ذلك لمثل هذه الحالات فمن الأفضل لاستخدام المنسق C ++ خارجي مثل astyle (أو <وأ href = " http://uncrustify.sourceforge.net/ "يختلط =" نوفولو noreferrer "> uncrustify) على سبيل المثال:

:%!astyle

ويستخدم وظيفة فيم ل'=' المنسق الداخلي بشكل افتراضي (الذي لا يحصل دائما الأمور في نصابها الصحيح) ولكن يمكن للمرء أيضا تعيين استخدام المنسق الخارجي، مثل astyle، من خلال إعداده بشكل مناسب كما نوقش في <لأ href = "https://stackoverflow.com/questions/4587940/using-astyle-in-vim">this السؤال .

والسادس يجب احترام علامات الجدولة والمسافات، ولكن يجب عليك أن تنظر التي السادس قد تستخدم مختلف علامات التبويب طول من محرر الآخرين. يمكنك أن تكون أي أكثر تحديدا من "افسدت كل شيء حتى"؟

لملفات XML، وأنا استخدم هذا الأمر

:1,$!xmllint --format --recover - 2>/dev/null

وتحتاج إلى أن يكون xmllint تثبيت (حزمة libxml2 تيلس)

و(المصدر: HTTP: / /ku1ik.com/2011/09/08/formatting-xml-in-vim-with-indent-command.html )

ويمكنك إنشاء الخرائط للقيام بذلك نيابة عنك.

وهذا واحد لصناعة السيارات في الهامش الملف بأكمله ولا تزال تبقي المؤشر في الموضع الذي هي:

nmap <leader>ai mzgg=G`z

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

لالسادس محرر، الاستخدام: إدراج. هذا وسوف تبقي كل ما تبذلونه من التنسيق وعدم إدراج صناعة السيارات في indenting.Once الهروب الصحافة القيام به لعرض ملف تنسيق الفعلي إلا you'l نرى بعض الشخصيات القمامة. مثل ^ I منها مثلا:

public static void main(String[] args) {
^I
^I System.out.println("Some Garbage printed upon using :insert"); 
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top