vi [এম] অন্য ফাইল থেকে রেখার পরিসীমা পড়ুন


9

লিনাক্সে, file_Bভিমে সম্পাদনা করতে আমি লাইন 10-25 থেকে যুক্ত করতে চাই file_A। উদাহরণ: একের বেশিরভাগ এইচটিএমএল-ডকুমেন্টের পুরো সেট রয়েছে যা একই হেডার এবং হ্যাঁ, কেউ একটি টেম্পলেট তৈরি করতে এবং সেখান থেকে শুরু করতে পারে, তবে এখনও:

আমি একটি ফাইল থেকে লাইনগুলির একটি পরিসর সন্নিবেশ করানোর জন্য এবং বর্তমানে যে ফাইলটি সম্পাদনা করছি তাতে এটি যুক্ত করার জন্য আমি একটি সহজ [এবং মার্জিত] উপায় খুঁজছি । ভিমে

আমি এখনও পর্যন্ত সমাধানগুলি খুঁজে পেয়েছি তবে ঠিক আমি যা খুঁজছি তা নয়

  • file_Bকমান্ডের ভিতরে:read file_A * সম্পূর্ণ ফাইল_এ * ফাইল_বিতে যুক্ত হবে। অতিরিক্ত
  • ভিমের অভ্যন্তরে অনুলিপি এবং পেস্ট রয়েছে - তবে এটির জন্য অবশ্যই এটি খুলতে হবে file_A
  • ফাইল_এর অভ্যন্তরে:10,25w! file_B প্রদত্ত রেঞ্জের রেঞ্জটি 'প্রেরণ' করবে file_B
    এটি অনুলিপি এবং পেস্ট খুব কাছাকাছি মনে হচ্ছে

  • একটি ভিমে একাধিক উইন্ডো খুলতে পারে তবে আমি 8 ইঞ্চি স্ক্রিনে কাজ করার সাথে সাথে একাধিক উইন্ডোজ ওরিয়েন্টেশনকে শক্ত করে তোলে

আমি কোনও আরামদায়ক সমাধানের সন্ধান করতে না পারায় আমি অবাক হয়েছি যে আমি যদি কেবল কিছু বুঝি বা এখনও পর্যন্ত যেভাবে খুঁজে পেয়েছি তা সাধারণত ব্যবহৃত হয় এবং মানক উপায় হিসাবে নেওয়া হয় taken


এই এই প্রশ্নটি দেখুন , @ বার্নহার্ডের উত্তরটি সেখানেও সেই প্রশ্নের গৃহীত উত্তর ছিল!
SLM

@ এসএমএল আমি এই উত্তরটি সম্পর্কে অবগত ছিলাম তবে আমি যে সমাধানগুলি পেয়েছি তার তালিকায় এটি রাখিনি, ইঙ্গিতটির জন্য আপনাকে ধন্যবাদ। আমি এখনও ভিতরে নির্মিত কিছু জন্য সন্ধান করছি vim। তবে এটি ধরাছোঁয়ার বাইরে বলে মনে হচ্ছে। এবং আমি সত্যিই আশ্চর্য হয়েছি যে এটি কেবল বাইরের কমান্ডের মাধ্যমেই অর্জনযোগ্য, কারণ আমি vimএখন পর্যন্ত যতটা পেয়েছি , আমি এখানে খুব কম বিধিনিষেধ নিয়ে এসেছি।
erch

@ cellar.dweller আপনি যদি সত্যিই আরও সহজ কিছু চান তবে আপনি এটি থেকে কোনও ধরণের ফাংশন তৈরি করতে পারেন।
বার্নহার্ড

উত্তর:


11

আমি যে সর্বোত্তম সমাধানটি সামনে আসতে পারি তা হ'ল বাহ্যিকভাবে কল করা sedএবং এটির সাথে একত্রিত করা:read !

:r !sed -n -e '10,25p' fileB

এখানে কাজ করে না - তবে কেন? প্রথমে আপনার সাহায্যের জন্য আপনাকে ধন্যবাদ। আমি যা পাই তা হ'ল 'E34: কোনও পূর্ববর্তী কমান্ড নেই' [মোটামুটি অনুবাদ করা] যেন ভিএম কোনও আদেশের পুনরাবৃত্তি করার চেষ্টা করে। যতদূর আমি এটি বুঝতে পারি, ধাপে ধাপে: ভিমের :rজন্য সংক্ষিপ্ত readsedএটি সম্পর্কে কীভাবে ব্যবহার করতে হয় তা সম্পর্কে আমার কোনও জ্ঞান নেই । অবশ্যই, আমি প্রতিস্থাপিত fileBপ্রকৃত ফাইলের সাথে :)
erch

@ cellar.dweller আমার উত্তরটি কেউ একজন দ্বারা আপডেট করা হয়েছিল, আমি সেই কোড দ্বারা একই ত্রুটি পেয়েছি। আমি এটি পিছনে ঘূর্ণিত। এটি আপনার পক্ষে কাজ করে কিনা দেখুন।
বার্নহার্ড

@ স্টাফেন উত্তরগুলি সংক্ষিপ্ত করা ভাল, কিন্তু আপনার পরামর্শ কার্যকর হয়নি।
বার্নহার্ড

এখন এটা কাজ করছে! কিছুটা মাইসেলিফ যোগ করতে: :10rইত্যাদি দিয়ে শুরু করা সামগ্রীটি লাইন টেন থেকে [যতক্ষণ না এটি বিদ্যমান থাকবে) তে রাখে। এখন কবজির মতো কাজ করে। গ্রেট। অনেক ধন্যবাদ!
20.09 এআরচ করুন

2
ওহো দুঃখিত. ভিমের প্রসারণ সম্পর্কে ভুলে গেছেন! হওয়া উচিত ছিল :r!sed 10,25\!d। মনে রাখবেন যে আপনার -eবা উদ্ধৃতিগুলির প্রয়োজন নেই, তাই আপনি এটি :r!sed -n 10,25pসংক্ষেপেও লিখতে পারেন । :r sed '10,$\!d;25q'পুরো ফাইলটি পড়া এড়ানোর জন্য।
স্টাফেন শেজেলাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.