GVIM إظهار عودة النقل (^ م) حتى عندما يكون وضع الملف بصراحة DOS

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

سؤال

أنا أستخدم GVIM على Windows. يعرض التعليمات البرمجية الخاصة بي ^M الشخصيات في نهاية الخطوط. انا إستعملت :set ff=dos ولكن دون جدوى. ال ^M تبقى الشخصيات للخطوط الموجودة، ولكن لا تظهر للحصول على خطوط جيولايت، أدخلها. لقد تحولت أوضاع إلى ماك (العروض ^J الشخصيات) و UNIX (يظهر أيضا ^M الشخصيات) والعودة إلى dos. هل راى احد اخر هذا؟

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

المحلول

يحدث هذا عندما يكون لديك مزيج من نهايات خط Windows و UNIX منها. إذا كان لديك 100 خطوط، 99 هي r n و ONE N، سترى أحرف 99 ^ م. الإصلاح هو العثور على هذا السطر واحد واستبداله. أو تشغيل dos2unix على الملف. يمكنك استبدال نهايات خط Windows مع:

:%s/\r\(\n\)/\1/g

نصائح أخرى

يمكنك أيضا تشغيل:

:e ++ff=dos

لإزالة ^M: يرى تنسيق الملف - نصائح VIM ويكي.

عادة ما أستخدم ما يلي لتنظيف نهايات خطي:

:g/^M$/s///

للحصول على CTRL-M، عادة ما اكتب CTRL-Q، ثم CTRL-M وتضعها فيها. (في بعض البيئات قد يكون ctrl-v ثم ctrl-m) أنا لا أعرف لماذا، لكنني أجد ذلك واحد أسهل أن نتذكر من برق'س.

لا تنسى أن تفعل :set ff=dos كذلك، أو عليك أن ينتهي الحفظ مع نهايات خط يونيكس لا يزال.

أعلم أن هذا قد تم الرد عليه بالفعل، ولكن خدعة أستخدمها هي

:%s/\r/\r/g

يستبدل هذا إرجاع حرف UNIX مع Windows CRLF. إضافة فقط في حالة أي شخص آخر لديه مشاكل.

يمكنك تجاهل هذه الأحفير!

ضع هذا في vimrc الخاص بك

تطابق تجاهل / r $ /

في الواقع ما كان يعمل بالنسبة لي (على Windows 64 بت، GVIM: 7.2) كان:

:set ffs=dos

ليس فقط: FF

تشغيل VIM 7.3 على Windows 7. استخدمت الأمر التالي:

:%s/^M/\r/g

لإنشاء ^ Mi تمت كتابته في CTRL + Q ثم CTRL + M.

ربما هذا بسيط بعض الشيء بالنسبة لكثير منكم ولكن على فرصة قبالة فهو مفيد.

بناء على إجابة Richq، وجدت هذه مفيدة في Vimrc. ملاحظة، يتم تعليق المرء الثاني بشكل طبيعي لأنه يجعل DD مربكة بعض الشيء لأن VIM سوف ينتظر ضربة أساسية أخرى للعمل إذا كانت الأمر السابقين السابقين.

وظيفة! D2U () تنفيذ '٪ s /  r  ( n  ×) /  1 / g' endfunction "خريطة D2U:٪ s /  r  ( n ) /  1 / g

الأول يتم تشغيله عن طريق الكتابة call D2u() في السابق والثاني بالضغط D2u في وضع التحرير.

هذه هي نهايات خط CR إضافية عادة بسبب استخدام ملف على أنظمة UNIX / DOS المختلطة.

ممكن أقصر إجابة لإزالة واحدة ^ م من نهاية كل سطر، وما أستخدمه، هو:

:%s/\r

وهو ما يعادل:

:%s/\r//

لكن الخطط النهائية غير مطلوبة (يفترض أنها).

حاول الكثير من الأشياء ولكن العمل التالي

:%s/\r/\r/g

ملاحظة: استخدم جيم إذا كنت تريد التأثير على الملف بأكمله

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