অপ্রত্যক্ষ বাফার ব্যবহারের সুবিধা কী ? কোন পরিস্থিতিতে তারা দরকারী?
অপ্রত্যক্ষ বাফার ব্যবহারের সুবিধা কী ? কোন পরিস্থিতিতে তারা দরকারী?
উত্তর:
একই বাফার একাধিক অবস্থান দেখতে এবং সম্পাদনা করতে। সুতরাং, আপনাকে দীর্ঘ বাফারটি স্ক্রোল করতে হবে না তবে কেবল উইন্ডোটি দৃশ্যমান অঞ্চলে স্যুইচ করতে হবে। প্রতিটি ক্লোন করা বাফারের আলাদা চিহ্নের রিং, সংকীর্ণকরণ এবং অন্যান্য বাফার বৈশিষ্ট্যও রয়েছে। আপনি যদি অপ্রত্যক্ষ বাফার ব্যবহার না করে তবে একই বাফারটির অন্য একটি উইন্ডো তৈরি করেন তবে সমস্ত কিছু ভাগ করা আছে এবং আপনি বিভিন্ন অবস্থান দেখার ও সম্পাদনার বাইরে অন্যান্য অগ্রিম বৈশিষ্ট্যগুলি সম্পাদন করতে পারবেন না। উদাহরণস্বরূপ, অপ্রত্যক্ষ বাফারের সাহায্যে আপনি সমস্ত কোড ব্লককে ভাঁজ করতে পারেন, মূল বাফারকে প্রভাবিত না করে কার্যকরভাবে একটি "ট্যাগ ট্রি" তৈরি করতে পারেন। একটি উইন্ডো ব্যবহার করে, উভয় উইন্ডোর উভয় বাফারগুলি ভাঁজ করা হয় কারণ উভয় বাফার একই।
সংক্ষেপে, অপ্রত্যক্ষ বাফার হ'ল সম্পূর্ণ ভিন্ন বাফার যা আপনার মূল বাফারে একই পাঠ্য এবং ফাইলটি ভাগ করে নেওয়ার জন্য ঘটে তাই আপনি ক্লোনযুক্ত বাফারটি সংরক্ষণ করার পরে এটি আপনার মূল ফাইলটিও সংরক্ষণ করে।
একটি ব্যবহারের ক্ষেত্রে ফাইলের এক অংশে একটি আলাদা প্রধান মোড ব্যবহার করা হচ্ছে।
উদাহরণস্বরূপ আমি এক সময় কিছু উপাদানগুলির মধ্যে কোড সহ এক্সএমএল ডকুমেন্টের সাথে কাজ করছিলাম। আমি পুরো ডকুমেন্টটি এটি এক্সএমএল হিসাবে সম্পাদনা করতে সক্ষম হতে চেয়েছিলাম, তবে এখনও প্রোগ্রামিং ভাষার জন্য সমস্ত প্রধান মোড বৈশিষ্ট্য নির্দিষ্ট উপাদানগুলিতে এম্বেড করা আছে, তাই আমি সেই উপাদানগুলির দেহের সংক্ষিপ্ত করে একটি পরোক্ষ বাফারে যা চলমান ছিল I উপযুক্ত প্রধান মোড।
আমার কনফিগারেশনের একটি ফাংশন এখানে আমি এটি করতে ব্যবহার করি:
(defun indirect-region (start end)
"Edit the current region in another indirect buffer.
Prompt for a major mode to activate."
(interactive "r")
(let ((buffer-name (generate-new-buffer-name "*indirect*"))
(mode (intern
(completing-read
"Mode: "
(mapcar (lambda (e)
(list (symbol-name e)))
(apropos-internal "-mode$" 'commandp))
nil t))))
(pop-to-buffer (make-indirect-buffer (current-buffer) buffer-name))
(funcall mode)
(narrow-to-region start end)
(goto-char (point-min))
(shrink-window-if-larger-than-buffer)))
দ্রষ্টব্য: এটি নিখুঁত নয়, ফন্ট-লকের মতো জিনিসগুলির জন্য এই দৃশ্যে ব্যবহারের জন্য বিশেষ অতিরিক্ত কাজ প্রয়োজন।
অপ্রত্যক্ষ বাফারগুলি আপনাকে একই বাফারের একাধিক মতামত দেয়, বিশেষত একাধিক সংকীর্ণতা, যার প্রত্যেকটি বিভিন্ন ক্ষেত্রে আলাদা আলাদা বাফারের মতো কাজ করে।
লাইব্রেরির ভাষ্য হিসাবে narrow-indirect.el
বলা হয়েছে:
আপনি যা ভাবেন তার চেয়ে অপ্রত্যক্ষ বাফার ব্যবহার করতে পারেন। আপনি ডায়ার্ড বাফারগুলির অংশ থেকে নেওয়া ক্লোনগুলি ব্যবহার করতে পারেন, উদাহরণস্বরূপ, ডিরেক্টরি তালিকাতে আপনাকে দরকারী (সক্রিয়) দর্শন দেওয়ার জন্য। কেবলমাত্র কয়েকটি কী / কমান্ড রয়েছে (যেমন
g
তালিকা আপডেট করার মতো ) যা কাজ করে না, কারণ তারা পুরো ডায়ার্ড বাফারের একটি দৃশ্যের উপর নির্ভর করে। পরীক্ষা করুন এবং আপনি পরোক্ষ বাফারদের জন্য সন্দেহজনক নতুন ব্যবহারগুলি খুঁজে পেতে পারেন।