ফাইলের শেষে প্রদত্ত লাইন থেকে প্যাটার্নের সাথে মেলে এমন লাইনগুলি মুছুন


10

আমার যদি এতে অনেকগুলি মন্তব্য সহ একটি ফাইল থাকে এবং আমি ফাইলটির শেষের 3 তম লাইন থেকে সমস্ত মন্তব্য মুছে ফেলতে চাই, এটি করার সর্বোত্তম উপায় কী?

আমি আটকে আছি, যেহেতু আমি প্রথম যা চেষ্টা করেছি তা আমার যা করতে চায় তা তেমন করে না বলে মনে হয়:

:3,$/^#/d

প্যাটার্নটি অনুসন্ধান করার পরিবর্তে এবং এটির সাথে লাইনগুলি ফাইলের শেষ থেকে শেষ পর্যন্ত 3 পর্যন্ত সীমাবদ্ধ করে এটি প্যাটার্নের সাথে মেলে এমন একটি লাইনের মধ্য দিয়ে 3 থেকে সমস্ত লাইন মুছে ফেলে এবং তারপর থামে।

সুতরাং আমি কীভাবে প্রান্তের রেঞ্জগুলিতে প্রাক্তন কমান্ড প্রয়োগ করব। এক্ষেত্রে এটি কোনও ফাইলের শেষের দিকে, তবে আমি যদি এটি একটি চিহ্ন হিসাবে বা 10 এবং 20 লাইন বা অন্যান্য রেঞ্জের মধ্যে করি তা কি আলাদা হবে?

উত্তর:


15

:globalকমান্ডটি তার জন্য ব্যবহার করুন :

:3,$g/^#/d

আপনি এটি কোনও প্যাটার্নের সাথে মেলে না এমন লাইনে প্রয়োগ করতে পারেন :

:3,$g!/^#/d

আপনি এটির সাথে পূর্ণ পরিসর প্রক্রিয়াটি ব্যবহার করতে পারেন (দেখুন :help :range):

:.,/#define/+3g/^#/d

এবং আপনি এটি কোনও আদেশ দিয়ে ব্যবহার করতে পারেন:

:3,$g/^#/s/foo/bar/g

এটি ভিমের অন্যতম শক্তিশালী কমান্ড, :help :globalবিশদ জানতে দয়া করে দেখুন ।


আপনি এমন :3,$v/foo/dপংক্তির জন্যও ব্যবহার করতে পারেন যা কোনও প্যাটার্নের সাথে মেলে না। :h vglobal
ভ্যাপ্পোলিনারিও
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.