আমি ব্যাবহার করতে পারি
:5,12s/foo/bar/g
foo
এটি bar
5 এবং 12 লাইনের মধ্যে অনুসন্ধান এবং প্রতিস্থাপন করতে আমি কীভাবে এটি কেবল 5 এবং 12 লাইনে করতে পারি (এবং এর মধ্যবর্তী লাইনে নয়)?
উত্তর:
ভিমের বিশেষ নিয়মিত প্রকাশের পরমাণু রয়েছে যা নির্দিষ্ট লাইন, কলাম ইত্যাদিতে মেলে; ম্যাচগুলিকে সীমাবদ্ধ করতে আপনি এগুলি (সম্ভবত ব্যাপ্তি ছাড়াও) ব্যবহার করতে পারেন:
:5,12s/\(\%5l\|\%12l\)foo/bar/g
দেখা :help /\%l
আপনি 5 নং লাইনে প্রতিস্থাপন করতে পারেন এবং লাইন 12 এ সর্বনিম্ন প্রচেষ্টা দিয়ে পুনরাবৃত্তি করতে পারেন:
:5s/foo/bar
:12&
ইনগো দ্বারা চিহ্নিত হিসাবে, :&
আপনার পতাকাগুলি ভুলে যায়। যেহেতু আপনি ব্যবহার করছেন /g
, সঠিক আদেশটি হ'ল :&&
:
:5s/foo/bar/g
:12&&
দেখুন :help :&
এবং বন্ধুরা।
:&
ব্যবহার করার জন্য +1 করুন । যদি পতাকা ( s/../../g
) থাকে তবে একটি ব্যবহার করতে হবে :&&
, যদিও ...
\(\%5l\|\%12l\)
হয় এর চেয়ে বেশি অস্পষ্ট:&
আপনি সর্বদা একটি যোগ করতে পারে c
। এটি প্রতিটি ম্যাচের জন্য নিশ্চিতকরণের জন্য জিজ্ঞাসা করবে।
:5,12s/foo/bar/gc
g
খেলায় একটি পতাকা রয়েছে তা মনে রাখবেন )
n
5 বা 6 বার চাপ \(\%5l\|\%12l\)
দেওয়ার বিষয়টি বিকল্প বিবৃতিতে যুক্ত করার চেয়ে আরও ভয়ঙ্কর ?
আকর্ষণীয় প্রশ্ন। দেখে মনে হচ্ছে কেবলমাত্র ব্যাপ্তি নির্বাচন রয়েছে এবং একাধিক লাইন নির্বাচন নেই:
http://vim.wikia.com/wiki/Ranges
তবে, আপনার যদি 5 এবং 12 লাইনে বিশেষ কিছু থাকে তবে আপনি :g
অপারেটরটি ব্যবহার করতে পারেন । যদি আপনার ফাইলটি দেখতে এইরকম হয় (কেবল রেফারেন্সের জন্য সংখ্যা):
1 line one
2 line one
3 line one
4 line one
5 enil one
6 line one
7 line one
8 line one
9 line one
10 line one
11 line one
12 enil one
আর তুমি প্রতিস্থাপন করতে চান one
দ্বারা eno
লাইন যেখানে হচ্ছে সে বিষয়ে enil
পরিবর্তে line
:
:g/enil/s/one/eno/
আপনি ব্যবহার করতে পারেন ed
- vi এবং vim এর অনুরূপ কমান্ড সহ একটি লাইনমুখী পাঠ্য সম্পাদক। এটি সম্ভবত vi এবং vim এর পূর্বাভাস দেয়।
একটি স্ক্রিপ্টে (এখানে একটি ডকুমেন্ট ব্যবহার করে যা এন্ডকম্যান্ড চিহ্নিতকারী পর্যন্ত ইনপুট প্রক্রিয়াকরণ করে) দেখতে দেখতে এটি দেখতে পছন্দ করবে:
ed file <<EndCommands
5
s/foo/bar/g
7
s/foo/bar/g
wq
EndCommands
স্পষ্টতই, এড কমান্ডগুলি কমান্ড লাইনেও ব্যবহার করা যেতে পারে।
vim
বিকল্পের চেয়ে আমি কোনও সুবিধা দেখছি না ।
:s
, তবে এখনও :s
কমান্ডের সদৃশতা রয়েছে (যা রোমেনেলের সমাধান এড়ানো হয়)।
sed
, যদিও ...