"জুম" অ্যাঙ্করগুলি
@ জেকজজোর উত্তর ছাড়াও, এমন অনেকগুলি পরিস্থিতি রয়েছে যেখানে আপনি শূন্য প্রস্থের অ্যাঙ্করগুলি ব্যবহার করতে পারেন \zs
এবং \ze
ইতিবাচক দৃষ্টিভঙ্গির পরিবর্তে। এই অ্যাঙ্করগুলি পুরো প্যাটার্নের মধ্যে ম্যাচের শুরু ( \zs
) এবং শেষ ( \ze
) নির্ধারণ করে।
উদাহরণ
foo\zsbar
এর bar
আগে মিলবে foo
( ম্যাচের foo
অংশ নয়)
foo\zebar
ম্যাচটি foo
অনুসরণ করবে bar
( ম্যাচের bar
অংশ নয়)
myFunction(\zs.*\ze)
কোনও ফাংশন কলে প্যারামিটারগুলি মিলবে (প্রদর্শনের উদ্দেশ্যে, আমি লোভী বনাম অ-লোভী মিলের দিকে মনোযোগ দিচ্ছি না)
এটি ব্যবহার করা
:substitute
কমান্ডটি ব্যবহার করার সময় এগুলি সবচেয়ে কার্যকর হয় useful উদাহরণস্বরূপ, আমি একটি ফাংশন কল মধ্যে পরামিতি প্রতিস্থাপন করতে চেয়েছিলেন myFunction()
সঙ্গে foo
:
:%s/myFunction(\zs.*\ze)/foo/
এটি ছেড়ে যাবে myFunction(
এবং )
অক্ষত থাকবে এবং এগুলি আপনার প্যাটার্নে ক্যাপচার করবেন বা আপনার প্রতিস্থাপনে সেগুলি পুনরাবৃত্তি করবেন কিনা তা নিয়ে আপনাকে চিন্তা করতে হবে না ।
আপনি ভিমের রেজেক্সের দৃষ্টিনন্দন বৈশিষ্ট্যটি ব্যবহার করে এটি করতে পারেন তবে এটি বেশ ছোঁয়াচে:
:%s/\(myFunction(\)\@<=.*\()\)\@=/foo/
(আমি দেখতে পাই যে এই বাক্য গঠনটি আমাকে প্রথমে যা করার চেষ্টা করছিলাম তা ভুলে যেতে বাধ্য করে))
আপনার এখনও মাঝে মাঝে নজরদারি দরকার
এখনও এমন পরিস্থিতি রয়েছে যেখানে আপনার নজরদারি দরকার। ব্যবহার \zs
এবং \ze
যেখানে আপনি সহজ পরিস্থিতিতে জন্য মহান আগে কিছু দ্বারা অনুসরণ টেক্সট মেলে দ্বারা অনুসরণ পর কিছু । তবে এটি যদি এর চেয়ে জটিল হয় তবে আপনাকে সম্ভবত ভারী চেহারার বাক্য গঠনতে আটকে থাকতে হবে।
মজার ব্যাপার
যদিও তারা যথেষ্ট কৃপণ, তবে ভিএম এর চেহারাগুলি পিসিআরই-র তুলনায় আরও শক্তিশালী! তারা পরিবর্তনশীল-দৈর্ঘ্যের নেতিবাচক চেহারাটির পিছনে সমর্থন করে, যার অর্থ আপনি দৃ as়ভাবে বলতে পারেন যে কিছু প্যাটার্ন যার দৈর্ঘ্য পূর্বনির্ধারিত নয় তা আপনার ম্যাচের আগে নয় ।
এটি মোটামুটি গণনা ব্যয়বহুল হিসাবে পিসিআরই এটি সমর্থন করে না। এটি ভিমে খুব একটা উদ্বেগ নয়, যেহেতু রেগেক্সের সর্বাধিক সাধারণ ব্যবহারের ক্ষেত্রে ইন্টারেক্টিভ অনুসন্ধান জড়িত থাকে যেখানে গণনার সময়টি ব্যবহারকারীর কাছে প্রায় দুর্ভেদ্য হয়। যদিও এটি যদি সিনট্যাক্স হাইলাইট করার জন্য ব্যবহৃত হয় তবে আপনি সম্ভবত এটি লক্ষ্য করবেন।
প্রাসঙ্গিক সহায়তা বিষয়
:help \zs
:help \ze
:help perl-patterns