ইন্টারেক্টিভ অনুসন্ধান / রিম প্রতিস্থাপন Vim?


265

আমি গ্লোবাল রিপ্লেসম করার জন্য রেজেস জানি,

     %s/old/new/g

আপনি কীভাবে ভিমে একটি ইন্টারেক্টিভ অনুসন্ধান-প্রতিস্থাপন করছেন ?

উত্তর:


462

পতাকা যুক্ত করুন সি (ভিআইএম কমান্ড প্রম্পটে):

:%s/old/new/gc

'পুরানো' এর প্রতিটি ঘটনায় আপনাকে একটি হ্যাঁ / কোনও প্রম্পট দেবে না।

"পুরাতন" পাঠ্যে হাইলাইট করা হয়েছে;  উইন্ডোর নীচে এটি বলে যে "নতুন (y / n / a / q / l / ^ E / ^ y) দিয়ে প্রতিস্থাপন করুন?" "

ভিমের অন্তর্নির্মিত সহায়তা একবার নিশ্চিতকরণের সাথে প্রতিস্থাপন নির্বাচন করা হলে উপলভ্য বিকল্পগুলিতে দরকারী তথ্য সরবরাহ করে। ব্যবহার করুন:

:h :s

তারপরে কনফার্ম অপশনে বিভাগে স্ক্রোল করুন। স্ক্রিনশট নীচে:

পাঠ্য যা "[সি] প্রতিটি প্রতিস্থাপনের বিষয়টি নিশ্চিত করুন [[...] স্ক্রিনটি নীচে স্ক্রোল করতে CTRL-Y"

উদাহরণস্বরূপ, এটি এবং বাকি সমস্ত মিলের বিকল্প ব্যবহার করতে, ব্যবহার করুন a


30
+1, আমি আজ নতুন কিছু শিখেছি!
ভিমে

10
ভিম কমান্ড শেখা কিছুটা নেথ্যাক খেলার মতো is আপনি কখনই জানেন না যে কোনও একক চরিত্র কী অবাক করে চলেছে।
মার্ক বাইক

22
আমি "সি" "কনফার্ম" এর জন্য কল্পনা করেছি
ম্যাটপি

8
আমি সত্যই স্নিকারক হয়ে উঠার চেষ্টা করছি না, তবে ": help: s" যা আপনাকে সরাসরি ": সহায়তা: s_flags" - এ পরিচালিত করে এই সবগুলিই পাওয়া যেত।
জেরেমি ক্যান্ট্রেল

13
@ জেরেমি: এর জন্য সহায়তা কমান্ড বিদ্যমান রয়েছে তা জেনে রাখা প্রয়োজন এবং প্রাসঙ্গিক সহায়তা ফাইলে আপনাকে পৌঁছানোর জন্য একটি "কোলন এস" সুইচ টাইপ করতে হবে তা জেনে রাখা দরকার। কিভাবে বা কোথায় যে শিখতে হবে?
ডেনিস

79

মার্ক বাইক ব্যবহার করে উল্লেখ করেছেন:

%s/old/new/gc

প্রতিটি প্রতিস্থাপনের জন্য নিশ্চিতকরণের সাথে একটি বিশ্বব্যাপী অনুসন্ধানের জন্য প্রতিস্থাপন করুন। তবে, আমি ইন্টারেক্টিভভাবে যাচাই করেও উপভোগ করি যে পুরানো পাঠ্যটি সঠিকভাবে মিলবে। আমি প্রথমে একটি রেজেক্সের সাহায্যে অনুসন্ধান করি, তারপরে আমি সেই প্যাটার্নটি পুনরায় ব্যবহার করি:

/old.pattern.to.match
%s//replacement/gc

s//গত অনুসন্ধান প্যাটার্ন ব্যবহার করবে।


9
ভিএম ব্যবহার / শেখার সর্বাধিক জিনিসগুলির মধ্যে একটি হ'ল খরগোশের গর্তটি কত গভীর হয়!
কেন

2
ভাল লাগল, আমি সর্বদা অনুসন্ধানটি করছিলাম, তারপরে বিকল্প কমান্ডে সর্বশেষ অনুসন্ধানটি পেস্ট করার জন্য <Cr> / ব্যবহার করছিলাম।
আটিলা ফিলিজ

সাব্লাইম টেক্সট থেকে ঠিক কী মিস করছি!
জেনোফেক্স

এই উত্তরটি বিশেষভাবে কার্যকর, কারণ আমি অনেকবার কল্পনা করেছিলাম যে আপনি কোনও শব্দের উদাহরণ প্রতিস্থাপন করার সিদ্ধান্ত নিয়েছেন, এটি আপনি কেবল সন্ধান করেছেন এমন শব্দ।
এম_এম

20

আমি মনে করি আপনি খুঁজছেন c, উদাহরণস্বরূপ s/abc/123/gc, এটি ভিআইএম প্রতিস্থাপনগুলি নিশ্চিত করবে। দেখুন: সহায়তা: আরও তথ্যের জন্য বিকল্প।


9

আমি সাধারণত সন্ধান / বিকল্প / পরবর্তী / পুনরাবৃত্তি কমান্ডটি ব্যবহার করি :-)

/old<CR>3snew<ESC>n.n.n.n.n.n.n.

যে find "old", substitute 3 characters for "new", find next, repeat substitute, ইত্যাদি।

এটি বিশাল বিকল্পগুলির জন্য ব্যথা তবে এটি আপনাকে পুরানো কিছু ঘটনাকে বেছে বেছে উপেক্ষা করতে দেয় (কেবলমাত্র nপুনরায় চাপ দিয়ে .বিকল্পটির পুনরাবৃত্তির পরিবর্তে পরবর্তীটি খুঁজে বের করে )।


আমি এটি পাশাপাশি ব্যবহার করি, একইরকম পাঠ্যের জন্যও। (3 সিডব্লিউ <পাঠ্য> <ESC> <নতুন জায়গায় যান> <মোভে>। <
মোভ

1
এটি কোনও প্রতিষেধক নয়! এটা মিষ্টি. এবং আপনি এন ব্যবহার করে বিপরীত দিকে অনুসন্ধান করতে পারেন সত্যই ভাল আপনি যদি কোনও শব্দ দেখেন এবং এটি পরিবর্তন করতে চান। * cwNewText <চট্টগ্রাম সিটি কর্পোরেশন> NNN (এই কার্সার অধীনে শব্দ থেকে দূরে ঝাঁপ দেবে, কিন্তু তারপর ফিরে তাড়াতাড়ি আপনি পরবর্তী সংঘটন পরিবর্তিত হয়েছে তিড়িং লাফ।
হেড


9

আপনি যদি কেবল 'abc' এর সংখ্যার সংখ্যা গণনা করতে চান তবে আপনি এটি করতে পারেন %s/abc//gn। এটি কিছুই প্রতিস্থাপন করে না তবে কেবল 'এবিসি' এর সংখ্যার রিপোর্ট করে।


3

যদি প্রতিস্থাপনের পাঠ্য প্রতিটি মেলানো ঘটনার জন্য পরিবর্তনের প্রয়োজন হয় (যেমন কেবলমাত্র একক প্রতিস্থাপন প্রয়োগ করার জন্য হ্যাঁ / না বেছে নেওয়া নয়) আপনি আমার তৈরি ইন্টারফ্যাক্ট -রিপ্লেস নামে একটি ভিম প্লাগইন ব্যবহার করতে পারেন ।


2

প্রতিস্থাপনের পূর্বরূপ দেখার জন্য নিওভিমের এখন একটি বৈশিষ্ট্য রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

ছবি থেকে নেওয়া হয়েছে: https://medium.com/@eric.burel/stop- using-open-source-5cb19baca44d বৈশিষ্ট্যের ডকুমেন্টেশন: https://neovim.io/doc/user/options.html# 'inccommand'


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