বর্তমান লাইন নম্বর সহ একটি প্যাটার্ন প্রতিস্থাপন করুন


15

আমি এই ফাইলটিতে 'এক্স' প্রতিস্থাপন করতে চাই বর্তমান লাইনের নম্বর দিয়ে। অর্থাৎ, পরিবর্তন

x
x
x

প্রতি

1
2
3

আপাতত, আমি পার্ল ওয়ান-লাইনার ব্যবহার করছি:

perl -pi -e '$x=$.; s/x/$x/' myfile.txt

আমি মনে করি UltraEdit এটি উল্লম্ব নির্বাচন এবং প্রতিস্থাপনের সাহায্যে করতে পারে। এটি কি ভিমে করা যায়? (এখানে আমার উদাহরণ ধরে নেওয়া হয়েছে 'এক্স' সব কিছুই এক লাইনে রয়েছে But তবে আমার আসল ফাইলের লাইনগুলি আরও জটিল)

উত্তর:


23

হ্যাঁ, ভিম এটি করতে পারে! এর জন্য একটি বিশ্বব্যাপী অনুসন্ধান করুন xএবং এর সাথে প্রতিস্থাপন করুন \=printf("%d", line('.')। উদাহরণ স্বরূপ:

:%s/x/\=printf("%d", line('.'))

xআপনার প্রয়োজন হলে আপনি অন্য অনুসন্ধানেও পরিবর্তন করতে পারেন।

ব্যাখ্যা:

এটি xমূল্যায়নের নিবন্ধের সাথে প্রতিটি ঘটনার (বা আপনি যা অনুসন্ধান করেন) প্রতিস্থাপন করে \=। এই রেজিস্টারটি ভিমস্ক্রিপ্ট কোডটি মূল্যায়ন করে এবং একটি স্ট্রিং দেয়। এই ক্ষেত্রে, কোডটি যাচাই করা হচ্ছে তা হ'ল "দশমিক সংখ্যা হিসাবে আমরা যে রেখায় আছি সেটিকে মুদ্রণ করুন"


9

যেহেতু আপনি উল্লম্ব নির্বাচন এবং প্রতিস্থাপন উল্লেখ করেছেন, আপনি এটিও করতে পারেন। CtrlVআপনি প্রতিস্থাপন করতে চান এমন পাঠ্যের লকটি নির্বাচন করতে ব্যবহার করুন এবং তারপরে c0 এর সাথে প্রতিস্থাপন করতে 0 টাইপ করুন। তারপরে, এই 0 টি নির্বাচন করুন:

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

তারপরে g<c-a>( g+ Ctrla) টিপুন :

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

আপনি যদি একটি একক কলাম প্রতিস্থাপন করে থাকেন, তবে আপনি gvএকই অঞ্চলটি পুনরায় নির্ধারণ করতে ব্যবহার করতে পারেন ।

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