এটি কিছুটা জটিল প্রশ্ন। আমি আপনার প্রশ্নের উত্তর পাল্টানোর চেষ্টা করব, তবে প্রথমে একটি সাধারণ বিবরণ:
স্ক্রোলব্যাক বাফারটি আপনার টার্মিনাল এমুলেটর ( xterm
, কনসোল, জিনোম টার্মিনাল) দ্বারা প্রয়োগ করা হয় । এটিতে টার্মিনালটিতে আপনি চালিত প্রতিটি প্রোগ্রামের স্ট্যান্ডার্ড আউটপুট এবং স্ট্যান্ডার্ড ত্রুটি সহ স্ক্রিনে প্রদর্শিত সমস্ত পাঠ্য রয়েছে। আপনার অতীত আউটপুট যা আপনাকে অতীতে স্ক্রোল করে থাকতে পারে বা কিছু আগে কী বলেছিল তা খতিয়ে দেখার জন্য এটি সম্পূর্ণরূপে টার্মিনাল কার্যকারিতা।
আপনি লগড আউটপুটটির দীর্ঘ পৃষ্ঠা হিসাবে আপনার স্ক্রলব্যাক বাফার এবং আপনার টার্মিনাল উইন্ডোটিকে কোনও উইন্ডোতে কেবল একবারে কেবল এর অংশটি দেখার জন্য ভাবতে পারেন। আপনি যদি কোনও স্ক্রোল না করে থাকেন তবে আপনি যা দেখছেন তা হল বাফারের শেষ প্রান্ত। সাধারণত এটি ভুলে যাওয়া শুরু হওয়ার আগে এটি কত লাইনের ট্র্যাক রাখে তার সীমাবদ্ধতাটি টার্মিনালে থাকবে।
মনে করুন যে সীমাটি 1000 লাইন। আপনার সেশনে প্রথম হাজার লাইনের আউটপুট দেওয়ার জন্য আপনি কেবল বাফারে সংযোজন করেছেন এবং আপনি আপনার সেশনের শুরুতে স্ক্রোল করতে পারেন। আউটপুট 1001 তম লাইনের সাথে সাথেই বাফারের প্রথম লাইনটি মুছে ফেলা হবে এবং আপনি যে সর্বাধিক পিছনে পিছনে স্ক্রোল করতে পারবেন তা আপনার সেশনের দ্বিতীয় লাইন হবে। বাফারে সর্বদা আপনার পর্দায় প্রদর্শিত হাজার হাজার আউটপুট আউটপুট থাকবে এবং আপনি যে কোনও সময় আগের আউটপুটটি সন্ধান করতে স্ক্রোল করতে পারেন।
এর অর্থ কি "সাবউরটাইন" বা "বৈশিষ্ট্য" হিসাবে "ফাংশন"?
এটি "বৈশিষ্ট্য" হিসাবে "ফাংশন"। টার্মিনাল এমুলেটরটির একটি কার্যকারিতা রয়েছে যা স্ক্রিনে যা আছে তা রেকর্ড করে এবং আপনাকে এতে উপরে এবং নীচে স্ক্রোল করতে দেয়। কিছু সিস্টেমে কনসোলগুলি সীমিত স্ক্রোলব্যাককে সমর্থন করে।
আপনি screen
মিশ্রণটি ফেলে দিলে এটি কিছুটা জটিল হয়ে যায়। এই মুহুর্তে, screen
নিজেই স্ক্রোলব্যাক বাফার অনুকরণ করছে - এজন্য আপনি কেবলমাত্র (সিলেক্ট) এক্স নির্বাচন না করে প্রোগ্রামটির মধ্যে এটি থেকে অনুলিপি এবং পেস্ট করতে পারেন।
এই স্ক্রোলব্যাক বাফারটির জন্য কি কোনও ইউনিক্স স্ট্যান্ডার্ড বা এপিআই রয়েছে?
সংক্ষিপ্ত উত্তরটি হ'ল না, এটি কেবলমাত্র আপনার টার্মিনাল দ্বারা সরবরাহ করা হয়েছে। আমরা নীচের দিকে আরও দীর্ঘ উত্তর পাবেন।
প্রোগ্রামগুলির একটি "স্ট্যাক" তে, যেমন টার্মিনাল এমুলেটরে চালু হওয়া এসএস-তে চালু হওয়া স্ক্রিনে লঞ্চ করা ভিআইএম, এই প্রোগ্রামগুলির মধ্যে কোনটি স্ক্রোলব্যাক বাফার নিয়ন্ত্রণ করছে?
ক্ষেত্রে vim
এবং bash
তারা সব সময়ে এটা নিয়ন্ত্রণ নেই (সতর্কীকরণ, আবার, নীচে)। আপনার টার্মিনালটি আপনার শেল থেকে শুরু করে এর ভিতরে থাকা সমস্ত প্রোগ্রামের জন্য স্ক্রলব্যাক বাফার সরবরাহ করে। screen
উপরে উল্লিখিত হিসাবে, নিজেই স্ক্রোলব্যাক অনুকরণ করছে।
আমি স্ক্রোলব্যাকটি কোনও ফাইলে ফেলার জন্য স্ক্রিনটিও ব্যবহার করেছিলাম। এই ফাইলটির শীর্ষে অনেকগুলি সাদা জায়গা ছিল এবং এটি দেখে মনে হচ্ছে যে আমার ভিউ টার্মিনাল এমুলেটরটি দেখায় যে এটি কেবল বাফারের নীচের কয়েকটি লাইন।
এটি screen
অভ্যন্তরীণ বাফার। আপনার স্ক্রিনে যা রয়েছে তা সাধারণত বাফারের একেবারে নীচে থাকে।
এই কারণেই কি ভিআইএম এর মতো একটি প্রোগ্রাম আমার পুরো টার্মিনাল উইন্ডোটিকে "সাফ" করতে পারে, কারণ এটি প্যারেন্ট শেলের স্ক্রোলব্যাক বাফারে অস্থায়ী অ্যাক্সেস পেয়েছে?
এটি আরও জটিল হয়ে ওঠার একটি অংশ এখানে। কার্যত সমস্ত এক্স-ভিত্তিক টার্মিনাল এমুলেটরগুলি একটি ভিটি 100 অনুকরণ করছে এবং তারা সেখানে একটি জিনিস "বিকল্প স্ক্রিন বাফার" সমর্থন করে । সিক্যুয়াল আউটপুটের সাথে বেশিরভাগ টার্মিনাল মিথস্ক্রিয়া জন্য ব্যবহৃত সাধারণ বাফার থেকে পৃথক, বিকল্প স্ক্রিন বাফারটি আপনার টার্মিনালের ঠিক সঠিক আকার। এতে কোনও স্ক্রোলিং আপ বা ডাউন নেই কারণ এটি প্রদর্শিত হওয়ার চেয়ে বড় নয়।
এই ধারণাটি হ'ল একটি স্ক্রিনে আপনার ইতিমধ্যে থাকা কোনও কিছুতে হস্তক্ষেপ না করে একটি পূর্ণ-স্ক্রিন অ্যাপ্লিকেশনটিকে যা করা দরকার তা করার অনুমতি দেওয়া এবং তারপরে আপনাকে ঠিক আগের প্রদর্শনীতে ফিরে যেতে দেওয়া। এজন্য আপনি যখন vim
এটি প্রবেশ করবেন তখন পুরো স্ক্রিনটি পূর্ণ হয়, কিন্তু আপনি যখন এটি ছেড়ে দেন তখন আপনার আগে থাকা টার্মিনাল আউটপুট - আপনার সমস্ত অতীত প্রম্পট এবং কমান্ড আউটপুট - আবার ফিরে আসবে। vim
এটি শুরু হয়ে গেলে বিকল্প স্ক্রিন বাফারে স্যুইচ করে এবং যখন বাইরে বের হয় তখন সাধারণ বাফারে ফিরে আসে।
এই বিকল্প বাফারটি আমি উপরে উল্লিখিত গুপ্তচরগুলির একটি। কখনও কখনও, প্রোগ্রামটি বাফারের সাথে কী করা উচিত তা টার্মিনালটি বলার ক্ষমতা রাখে।
screen
এটি এমন একটি প্রোগ্রাম যা এটি করে, যার জন্য আপনার টার্মিনালের স্ক্রোলিং কার্যকারিতা সাধারণত স্ক্রিন সেশনে থাকাকালীন কাজ করে না - screen
নিজেই স্ক্রোলব্যাক বাফারকে এমুলেটেড করে, তাই আপনাকে পুরানো আউটপুটটিতে যেতে তার অভ্যন্তরীণ কার্যকারিতাটি ব্যবহার করতে হবে।
অথবা ভিআইএম তার নিজস্ব স্ক্রোলব্যাক বাফার ব্যবহার করে যা প্যারেন্ট স্ক্রোলব্যাক বাফারের শীর্ষে কোনওভাবে overেকে দেওয়া হয়?
আমি আগের প্রশ্নের বেশিরভাগ ক্ষেত্রেই এর উত্তর দিয়েছি, তবে এই নির্দিষ্ট প্রশ্নের সংক্ষিপ্ত উত্তরটি এটি vim
টার্মিনাল থেকে কোনও অস্থির স্ক্রোলব্যাক ছাড়াই তার নিজের অস্থায়ী বাফারটি পেয়ে যায় এবং তারপরে অভ্যন্তরীণভাবে আপনার সমস্ত নথিগুলির নিজস্ব স্ক্রোলিং সম্পাদন করে।
এই সমস্ত ব্যতিক্রমগুলি আমি উল্লেখ করেছি:
এটি আবার কিছুটা জটিল হয়ে যায়। আমি বলেছিলাম যে অ্যাপ্লিকেশনগুলির স্ক্রোলব্যাকের উপর কোনও নিয়ন্ত্রণ নেই এবং এটি সম্পূর্ণরূপে টার্মিনাল দ্বারা সরবরাহ করা হয়েছে। কিছু ক্ষেত্রে, কিছু টার্মিনাল সহ, সীমিত মিথস্ক্রিয়া হয়। প্রোগ্রামটি কিছু পালানোর ক্রমগুলি প্রিন্ট করে - যদি আপনি অতীতে কখনও ম্যানুয়ালি টার্মিনাল রঙিন ব্যবহার করেন তবে আপনি তাদের দেখতে কেমন তা দেখতে পেয়েছেন - এবং টার্মিনালটি সেগুলির ব্যাখ্যা করতে পারে এবং এর আচরণ পরিবর্তন করতে পারে, বা প্রোগ্রামে তথ্য ফেরত পাঠাতে পারে। কোন এস্কেপ সিকোয়েন্স পাওয়া যায় তা বর্ণিত হয়েছে described টার্মক্যাপ (টার্মিনাল সক্ষমতা) ডাটাবেসে ।
কিছু টার্মিনাল স্ক্রোলব্যাক বাফারকে সীমাবদ্ধ অনুসন্ধান এবং কারসাজি সমর্থন করে। অনেকxterm
ডেরাইভেটিভের এসকেপ সিকোয়েন্স রয়েছে যা টার্মিনালটিকে তার দৃশ্যটি স্ক্রোল করতে পরিচালিত করে। অনেকগুলি টার্মিনাল বাকী সমস্ত অক্ষত রেখে স্ক্রোলের জন্য পর্দার একটি নির্দিষ্ট ক্ষেত্র নির্দিষ্ট করার জন্যও সমর্থন করে। এতে স্ক্রোলব্যাক বাফারটি ভেঙে যায়।
প্রায় সমস্ত টার্মিনালগুলি স্ক্রিনের চারপাশে কার্সারটি সরানোর জন্য সিকোয়েন্সগুলি সমর্থন করে, যা ncurses
লাইব্রেরিটি প্রদর্শনের সমস্ত বিভিন্ন অংশ আপডেট করতে সক্ষম হয়। আপনি সমর্থিত ভিটি 100 সিকোয়েন্সগুলিxterm
দেখতে পারেন । এগুলি যেভাবে স্ক্রোলব্যাক বাফারটির সাথে ইন্টারঅ্যাক্ট করে তা কিছু সময় অদ্ভুত হতে পারে, বিশেষত এমন কোনও ক্ষেত্রে যা less
কমান্ডের মতো নিজস্ব স্ক্রোলিং আচরণ প্রয়োগ করে। আপনি আপনার স্ক্রোলব্যাকে সদৃশ বা অনুপস্থিত রেখাগুলি দিয়ে শেষ করতে পারেন কারণ less
আপনার টার্মিনালটি প্রত্যাশা না করে এমনভাবে শীর্ষে পাঠ্যটি আবার আঁকুন। অন্যান্য প্রোগ্রামগুলি কখনও কখনও আপনার বাফারকে তাদের সম্পূর্ণ প্রদর্শনটির একাধিক অনুলিপি দিয়ে পূর্ণ করে।