كيف يمكنني البحث عن شخصية العروض على أنها <85> في VIM؟

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

سؤال

لدي ملف تم تحويله من EBCDIC إلى ASCII. عندما يكون هناك خطوط جديدة ، توجد الآن أحرف تظهر على أنها <85> (رمز يمثل حرفًا واحدًا ، وليس الأحرف الأربعة التي يبدو أنها) والملف بأكمله على سطر واحد. أريد البحث عنهم واستبدالهم جميعًا بخطوط جديدة مرة أخرى ، لكنني لا أعرف كيف.

حاولت وضع المؤشر فوق واحد واستخدام * للبحث عن الحدوث التالي ، على أمل أن يظهر في تاريخ البحث الخاص بي. هذا لم ينجح. لقد بحثت للتو عن الكلمة التي اتبعت الحرف <85>.

غوغل حول بعض ، لكنني لم أر أي شيء واضح.

هدفي هو بناء بحث واستبدال سلسلة مثل:

:%s/<85>/\n/g   

الذي يعطيني حاليًا فقط:

E486: Pattern not found: <85>  

شكرًا!

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

المحلول

وجدت هذا المشنور من بحث Google. يبدو أنك يجب أن تكون قادرًا على القيام بذلك:

:%s/\%x85/\r/gc

(حذف c للقيام بالاستبدال دون المطالبة ، حاول مع c أولاً للتأكد من قيامه بما تريد أن تفعله.)

في VIM ، الكتابة :h \%x يعطي المزيد من التفاصيل. بالإضافة إلى \%x, ، يمكنك استخدام \%d, \%o, \%u و \%U بالنسبة إلى العشرية ، ثماني ، ما يصل إلى أربعة وما يصل إلى ثمانية شخصيات سداسية عشرية.

نصائح أخرى

جرب هذا: :%s/<85>/^M/g

ملاحظة: اضغط على Ctrl-V معًا ثم M

أو إذا كنت لا تمانع في استخدام أداة أخرى ،

awk '{gsub("<85>","\n")}1' file
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top