আমি কি ভিএম কমান্ড লাইনে পার্ল নিয়মিত এক্সপ্রেশন ব্যবহার করতে পারি?


27

আমি ভিএম কমান্ড লাইনে পার্ল নিয়মিত এক্সপ্রেশন ব্যবহার করতে চাই। উদাহরণস্বরূপ, বর্তমান লাইনে শব্দগুলি মূলধন করতে আপনি টাইপ করতে পারেন:

:s/(\w+)/\u$1/g

থেকে : পার্ল-নিদর্শনগুলিতে সহায়তা করুন ... ভিমের রেজিক্সগুলি পার্লের সাথে সাদৃশ্যপূর্ণ, আপনি যা করতে পারেন সে ক্ষেত্রে। তাদের মধ্যে পার্থক্য বেশিরভাগই কেবল স্বরলিপি uhhmm ... এটি আপনি যেভাবে যোগাযোগ করতে পারেন তার দিক থেকে চাইনিজ গ্রীকের সাথে অনুরূপ বলে মনে হয়। পার্থক্যটি বেশিরভাগই কেবল স্বরলিপি। রেজেক্স স্বরলিপি ছাড়া আর কিছুই নয় ! পার্থক্যগুলি বিরক্তিকর হয় যদি একটি স্বরলিপি অপরটির চেয়ে কম পরিচিত হয়। এই কারণেই লোকেরা প্রথমে পার্ল সম্পর্কে জিজ্ঞাসা করে!
dreftymac

উত্তর:


19

আপনি কোনও বাহ্যিক কমান্ডের মাধ্যমে রেখার লাইন বা রেঞ্জের রেঞ্জ ফিল্টার করতে পারেন! যেমন, আপনি এটি করতে পারেন:

:.!perl -pe "s/(\w+)/\u\1/g"

যা পার্ল কমান্ডের মাধ্যমে বর্তমান লাইনটি ফিল্টার করবে। (এখানে :কমান্ড লাইন মোডে প্রবেশ করার জন্য, এবং এর .পরে বর্তমান লাইনটি বোঝায়; আপনি একটি লাইন পরিসর বা %পুরো ফাইলের জন্য নির্দিষ্ট করতে পারেন ইত্যাদি)

আপনি যদি প্রতিস্থাপনের নিদর্শনগুলিতে ভিমের নির্মিত ব্যবহার করতে চান তবে আপনার নিকটে আসবে হ'ল ভিমের "খুব যাদু" বিকল্পটি ব্যবহার করা, \ v, এরকম:

:s/\v(\w+)/\u\1/g

দেখুন :help patternএবং :help substituteআরও বিশদ জন্য। আমি মনে করি না "খুব যাদু" পার্লের ধরণগুলির সাথে একরকম, তবে এটি খুব কাছে is যাইহোক, উপরের মতো আপনি যদি আরও বেশি স্বাচ্ছন্দ্য বোধ করেন তবে আপনি সর্বদা পার্ল নিজেই ব্যবহার করতে পারেন।


1
এছাড়াও, খুব যাদু দিয়ে, আপনাকে মুখস্থ করতে হবে না যা (বিশেষভাবে করা হয় যখন {না হয়: "0 '-' 9 ',' এ '-' জেড ',' এ '-' জেড 'এবং সমস্ত এএসসিআইআই অক্ষর '_' এর একটি বিশেষ অর্থ রয়েছে। " ধন্যবাদ!
আয়রাত

10

না, আপনি পার্ল নিয়মিত এক্সপ্রেশনটি সেভাবে ব্যবহার করতে পারবেন না। পার্ল নিয়মিত প্রকাশের উপাদানগুলির জন্য ভিম সমতুল্য শিখতে সহায়তার জন্য দেখুন

:help perl-patterns

যাইহোক, আপনি পার্লকে বাহ্যিক ফিল্টার হিসাবে ফ্রেবস দ্বারা ব্যাখ্যা করা হিসাবে ব্যবহার করতে পারেন। পার্ল ইন্টারফেসটি ব্যবহার করে আপনি ভিমের মধ্যে পার্ল কমান্ডগুলিও কার্যকর করতে পারেন, যদি আপনার ভিম +perlবৈশিষ্ট্যটি সংকলিত হয় । দেখ

:help if_perl.txt

2
+1, :help perl-patternsআমি ভিএম সম্পর্কে আগে যা ঘৃণা করেছি তার একটি সমাধান করেছে
মার্ক কে কাউয়ান

8

আপনি এটি ব্যবহার করতে পারেন:

/\v"your regex"

পরিবর্তে:

/"your regex"

এই যে উত্তরটি আমি খুঁজছিলাম!
অ্যালেক্সেরসেট

আপনি নিজের .vimrc যুক্ত করে nnoremap / /\vএবং নিজের সাহায্য করতে পারেন vnoremap / /\vযাতে আপনি /এটি টাইপ করলে কেবল কাজ হয়।
mattmc3


2

Eregex.vim প্লাগইন ব্যবহার করুন । এটি খুব দরকারী এবং এটি নিয়ে আমার কোনও সমস্যা হয়নি।

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