ভিমের মধ্যে like এর মতো কোনও প্যাটার্ন আছে কি?


20

ভিম স্বাভাবিক মোডে, 0কমান্ডটি আপনাকে লাইনের প্রথম কলামে নিয়ে যায় এবং ^আপনাকে লাইনটির লজিকাল শুরুর দিকে নিয়ে যায় (যেমন প্রথম অ-সাদা স্থানের অক্ষর)। রেজেক্স ওয়ার্ল্ডে, ^লাইনের প্রথম অক্ষরটির সাথে মিলে যায়, সাদা স্থান বা না। ভিমের কি এমন প্যাটার্ন রয়েছে যা তার 'command' কমান্ডের মতো আচরণ করে - একটি লাইনের লজিকাল শুরুর সাথে মেলে?


আমি মনে করি a একটি রেজেক্সে সাধারণত রেখার সূচনার সাথে মেলে, প্রথম চরিত্রটি নয়। ^। শুরু এবং তারপরে প্রথম অক্ষরটির সাথে মিলবে, না আবার শুরু এবং তারপরে দ্বিতীয় চরিত্রটি।
বিডিএসএল

উত্তর:


17

কোনও লাইনে প্রথম অ-শ্বেতস্পেস অক্ষরের সাথে মিল রাখার জন্য কোনও শর্টকাট নেই, আপনাকে নিজেই প্যাটার্নটি তৈরি করতে হবে, যেমন:

^\s*restofpattern

আপনি যদি আপনার ম্যাচে হোয়াইটস্পেস অন্তর্ভুক্ত করতে না চান তবে আপনাকে একটি শূন্য প্রস্থের প্রতিলিপি ব্যবহার করতে হবে, যেমন:

\(^\s*\)\@<=restofpattern

ঠিক সুন্দর নয়, তবে কমপক্ষে এটি কাজটি করে।


6

প্রথম অ- হোয়াইটস্পেস চরিত্রের সাথে মিল রাখতে , আপনি কেবল নিজের \Sমতো ব্যবহার করেন ।


আপনি যদি ^ভিমে কোনও রেজেক্সে ব্যবহার করেন তবে এটি লাইনের প্রকৃত সূচনার সাথে মিলবে, এমনকি তাতে সাদা অংশ রয়েছে।

উদাহরণস্বরূপ, এই লাইনটি একটি স্পেস দিয়ে শুরু হয়:

 <- there's a space there you can't see :)

এই ভিএম কমান্ডটি অগ্রণী স্থান সরিয়ে ফেলবে:

:%s/^ //

নিম্নলিখিতগুলির ফলাফল:

<- there's a space there you can't see :)

সুতরাং, কমান্ডটি না করলেও রেজেক্স আপনার প্রত্যাশা অনুযায়ী আচরণ করবে।


আমি ধারণা করছি আপনি ডাউনটোটটি ব্যাখ্যা করতে যাচ্ছেন। এই উত্তরটি, যতদূর আমি জানি, সঠিক।
মাইকেল হ্যাম্পটন

1
আমি ডাউনওয়েট করি নি, তবে স্পষ্টতার সাথে: আমি ভাবছিলাম যে লিমের প্রথম অ-শ্বেতস্পেসের চরিত্রটি মিলানোর জন্য ভিমের কোনও অপারেটর রয়েছে কিনা। ^অপারেটর (সমস্ত বিবেকী Regex বাস্তবায়নের মতো) প্রথম অক্ষর ম্যাচ হবে যদিও তা হোয়াইটস্পেস হয়।
মাইকেল

আচ্ছা, আপনি কীভাবে এটি স্বাভাবিকভাবে করার আশা করছিলেন? সাধারণত কোনও রেজেজেমে আপনি \Sপ্রথম অ-সাদা অংশের অক্ষরের সাথে মিল রাখতে কিছু ব্যবহার করতেন ।
মাইকেল হ্যাম্পটন

2
\Sযে কোনও অ-সাদা অংশের অক্ষরের সাথে মিলবে । এটা অন্য উপায় করা করার জন্য, আমি হতাশ করছি যদি তেজ এই জন্য একটি শূন্য-চওড়া সাধারণভাবে সংক্ষেপে রয়েছে: ^\W*\S
মাইকেল

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