কোনও ম্যাচের লাইনের আগে এবং পরে রেখার একটি রেঞ্জ মুছে ফেলছেন?


12

আমার কাছে পুনরাবৃত্তিযোগ্য কনফিগারেশন ফাইল রয়েছে এবং আমি একটি ম্যাচ আগে এবং ম্যাচের পরে একটি রেজেক্সের সাথে মিল রাখতে এবং বিভিন্ন লাইন মুছতে চাই। আমি এক কমান্ডে ম্যাচটি মুছতে চাই।

আমি ব্যাবহার করতে পারি...

:g/match/-1d

... ম্যাচের আগে থেকে একাধিক লাইন মুছতে বেশ কয়েকবার ...

... এবং কয়েকটি কলের সাথে এটি একত্রিত করুন ...

:g/match/+1d

... ম্যাচের পরে একাধিক লাইন মুছতে ...

তবে এক কমান্ডের সাথে ম্যাচ করার আগে, পরে এবং অন্তর্ভুক্ত বিস্তৃত রেখাগুলি মুছে ফেলার কোনও উপায় আছে কি?

উত্তর:


21

আপনি বেশিরভাগ ওখানেই থাকেন; আপনি [line1],[line2][command]কেবলমাত্র [line][command](যেমন আপনি এখন ব্যবহার করছেন) এর পরিবর্তে বিভিন্ন রেখার সীমা নির্দিষ্ট করতে পারেন ।

আপনি .বর্তমান লাইনটি উল্লেখ করতে ব্যবহার করতে পারেন ।

  • বর্তমান এবং পরবর্তী লাইনের জন্য: :g/match/.,+1d
  • বর্তমান এবং পূর্ববর্তী লাইনের জন্য: :g/match/-1,.d
  • পূর্ববর্তী, বর্তমান এবং পরবর্তী লাইনের জন্য: :g/match/-1,+1d

দেখুন :help [range]আরও তথ্যের জন্য, এবং এই উত্তরটি মধ্যে আরো কয়েকটি উদাহরণ আছে


বাক্য গঠন কি একই রকম?
leeand00

3
@ লীয়ানডে নং that যা যা :gকরে তা হ'ল একটি প্যাটার্নের সাথে মেলে এমন একটি প্রাক্তন কমান্ড চালানো। টাইপিংয়ের :g/match/.,+1dসাথে সমস্ত লাইনে যাওয়া matchএবং টাইপ করা ঠিক একই রকম হবে:.,+1d
মার্টিন টর্নয়েজ ২

এটি খুব শীতল জিনিস আমি কিছুক্ষণের মধ্যে ভিমে শিখেছি। ভাগ করে নেওয়ার জন্য ধন্যবাদ!
এলপিএস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.