এটি সত্যিই বেশ বুদ্ধিমান। আসুন এটি ভেঙে দিন। ex
হুকুম
g/^$/xyzzy
সমস্ত খালি লাইন অনুসন্ধান করবে এবং তাদের প্রত্যেকের উপর xyzzy
আদেশ (একটি স্বেচ্ছাসেবক ex
কমান্ড) কার্যকর করবে। নোট করুন যে xyzzy
এটি আসল ex
কমান্ড নয়, পরবর্তী অনুচ্ছেদ অনুযায়ী এটি কেবল স্থানধারক হিসাবে রয়েছে।
এখানে জটিল xyzzy
কিছু হ'ল আপনার ক্ষেত্রে "কমান্ড" হ'ল আর একটি অনুসন্ধান আদেশ:
,/./-j
,/./-
একটি সীমার নির্দিষ্ট করে। এটি ফর্মের <start>,<end>
এবং, কারণ কমা এর আগে কিছুই ছিল না, এটি বর্তমান লাইনটি ধরে নিয়েছে (যেখানে আপনি ফাঁকা রেখাটি খুঁজে পেয়েছেন) এটিই শুরু।
কমা হওয়ার পরে /./-
যার অর্থ পরবর্তী অক্ষরটি অনুসন্ধান করা ( .
যার অর্থ কোনও চরিত্র) তারপরে একটি লাইন ব্যাক আপ করুন ( কোনও মান না দেওয়া থাকলে একটিটি অন্তর্নিহিত হওয়ার /./-
জন্য সংক্ষিপ্ত /./-1
)। আপনি যে প্যাটার্নটি .
চালাচ্ছেন তা অনুসরণ করে প্রথম নন-ফাঁকা লাইনে আপনি পাবেন।
অন্য কথায়, পরিসীমাটির শেষে হ'ল আপনি বর্তমানে যে অপারেটিং করছেন তার পরে বা তার পরে সর্বশেষ ফাঁকা রেখা।
তারপরে আপনি এই ব্যাপ্তির উপর একটি যোগদান চালাবেন।
যদি পরিসীমাটির শুরু এবং শেষ সমান হয় (কেবলমাত্র একটি ফাঁকা রেখাটি বিভাগে ছিল), যোগ দিন কিছুই হয় না। যদি তারা সমান না হয় তবে তাদের সাথে যোগ দিন।
এটি একাধিক ফাঁকা রেখা একত্রিত করে ines
একটি উদাহরণটি দেখে নেওয়া যাক (লাইন সংখ্যাগুলি কেবল ব্যাখ্যার জন্য, তারা আসল ফাইলে নেই):
1 Line 1
2
3 Line 3
4 Line 4
5
6
7
8
9 Line 9
g/^$/
কমান্ড সব খালি লাইন খুঁজে পেতে এবং তাদের উপর তার অপারেশন সঞ্চালন (এই লাইন 2, 5, 6, 7 ও 8 হয়) হবে।
লাইন 2 এর জন্য, 2 ,/./-j
থেকে 2 পর্যন্ত সীমা স্থাপন করবে (পরেরটি .
3 লাইনে পাওয়া যাবে তারপর 2 পেতে 1 বিয়োগ করবে)। 2,2 ব্যাপ্তিটিতে যোগদান একটি কিছুই করে না।
5 নং লাইনের জন্য, ,/./-j
5 থেকে 8 পর্যন্ত সীমা নির্ধারণ করবে (পরবর্তী .
9 লাইনে পাওয়া যাবে তারপর 1 টি বিয়োগ করুন)। 5,8 রেঞ্জের একটি জোড় সেই সমস্ত লাইনে একসাথে যোগদান করবে।
আগের অপারেশনের অংশ হিসাবে অদৃশ্য হয়ে যাওয়া লাইনে অপারেশন করা হয় না। এর কারণ এটি চক্রের পূর্বে মুছে ফেলা লাইনগুলি প্রক্রিয়া করার কোনও অর্থ রাখে না।
অন্য কথায়, 6 থেকে 8 লাইনগুলি মুছে ফেলা হয়েছে (লাইন 5 এর সাথে সংযুক্ত), গ্লোবাল কমান্ড এর পরে তাদের উপর কাজ করে না।
এটি vim
ডকুমেন্টেশনে দুটি পাসের অ্যালগরিদমকে বর্ণনা করে, একটি লাইন চিহ্নিত করে, একটি অপারেশন সম্পাদন করে on