কীগুলির জন্য ওভারলেগুলি রয়েছে এবং কীভাবে তারা পাঠ্যের বৈশিষ্ট্য থেকে পৃথক হয়?


23

ম্যানুয়াল পদ বলে:

উপস্থাপনা বৈশিষ্ট্যগুলির জন্য আপনি স্ক্রিনে বাফারের পাঠ্যের চেহারা পরিবর্তন করতে ওভারলেগুলি ব্যবহার করতে পারেন।

এর নাম থেকে এটি পরামর্শ দেয় এটি বিদ্যমান পাঠ্যের উপরে "স্তর" তৈরি করতে ব্যবহার করা যেতে পারে, তবে উপরের বিবরণটি এটি সূচিত করে যা টেক্সটের উপস্থিতি পরিবর্তিত করে যা টেক্সট বৈশিষ্ট্যগুলির সাথে খুব মিল খুঁজে পায়।

ওভারলেগুলির একটি কংক্রিট ব্যবহার কী? তারা কী প্রস্তাব দেয় যে পাঠ্য বৈশিষ্ট্যগুলি না? এগুলি কী কোনও পপআপ, ইনফো বাক্স ইত্যাদির মতো কোনও বাফারে পাঠ্যের মাধ্যমে পাঠ্য লিখতে ব্যবহৃত হতে পারে?


ম্যানুয়াল বিভাগটি কেবল একটি বাক্যের চেয়ে আরও পড়ুন। এটি বেশ পরিষ্কারভাবে ব্যাখ্যা করা হয়েছে, আইএমও। পাঠ্য বৈশিষ্ট্যগুলি থেকে পার্থক্য সহ। অবশ্যই দেখুন (একই ম্যানুয়াল মধ্যে) i text properties
ড্র হয়েছে

উত্তর:


10

ওভারলে কি?

প্রথমত, এগুলি এলিস্প অবজেক্ট। এটি পরে প্রাসঙ্গিক হবে।

যেমন আপনি নিজে বলেছিলেন, এগুলি স্তরগুলির প্রতিনিধিত্ব করে যা বাফারের অঞ্চলগুলির উপরে প্রযোজ্য। বাফারের আসল পাঠ্যের মতো এই স্তরগুলিরও পাঠ্য বৈশিষ্ট্য রয়েছে। ওভারলে থাকা যে কোনও নিয়মিত সম্পত্তি এটির নীচের পাঠ্যে প্রযোজ্য। যাইহোক, কিছু বৈশিষ্ট্য রয়েছে যা ওভারলেগুলির জন্য বিশেষ (তারা যদি পাঠ্যের উপর প্রয়োগ করা হয় তবে তারা কিছুই করে না)।

কেন তারা দরকারী?

দুটি কারণে আমি উপরের দিকে ইঙ্গিত করেছি:

তারা বস্তু

এর অর্থ আপনি এগুলিকে তালিকায় সঞ্চয় করতে পারেন এবং সহজেই তাদের পরিচালনা করতে পারেন। এখনই তারা কোথায় তা ট্র্যাক না করেই আপনি তাদের বৈশিষ্ট্যগুলি পরিবর্তন করতে পারেন। আরও ভাল, আপনি বাফারগুলিতে জিনিসগুলি কোথায় রয়েছে সে সম্পর্কে নজর রাখতে আপনি এগুলি ব্যবহার করতে পারেন ।

স্টেফানের এই উত্তরটি বাফার অঞ্চলগুলি ট্র্যাক রাখতে ওভারলেগুলির একটি ভাল উদাহরণ। এটির একটি সংক্ষিপ্ত স্নিপেট এখানে।

(let ((ol (make-overlay beg end)))
  (overlay-put ol 'evaporate t)
  (overlay-put ol 'my--auto-align-regexp regexp)
  (push ol my--auto-align-overlays))

কোন অঞ্চলগুলিকে সারিবদ্ধ করতে হবে এবং তাদের প্রতিটিটিতে কোনটি regexp ব্যবহার করবে তা রেকর্ড করতে এটি ওভারলেগুলি ব্যবহার করে। my--auto-align-overlaysহয়

ওভারলেগুলি সংরক্ষিত রয়েছে এমন একটি তালিকা এবং এই তালিকাটি দেখে তারা সুবিধামত অ্যাক্সেস করতে পারে।
বিপরীতে, আমরা যদি এর জন্য পাঠ্য বৈশিষ্ট্যগুলি ব্যবহার করতাম (যা সম্ভব) তবে আমাদের কাছে তাদের অ্যাক্সেসের কোনও সহজ উপায় নেই। পাঠ্যের বৈশিষ্ট্য অনুসন্ধান করতে আপনাকে বাফারটি বিশ্লেষণ করতে হবে।

তারা কিছুটা বেশি শক্তিশালী

কয়েকটি পাঠ্য-বৈশিষ্ট্য রয়েছে যা কেবল ওভারলেগুলিতে প্রভাব ফেলে। ম্যানুয়ালটিতে আপনি পুরো তালিকাটি খুঁজে পেতে পারেন । এটি এখানে অন্তর্ভুক্ত করা খুব বড়, কিন্তু এখানে একটি সংক্ষিপ্ত হাইলাইট।

পূর্ব-স্ট্রিং
এই সম্পত্তিটির মান ওভারলে এর শুরুতে প্রদর্শনগুলিতে যুক্ত করার জন্য একটি স্ট্রিং। স্ট্রিংটি কোনও অর্থে বাফারে প্রদর্শিত হবে না - কেবল স্ক্রিনে।
লাইন উপসর্গ
এই সম্পত্তি প্রদর্শন সময় প্রতিটি অ-ধারাবাহিকতা লাইন প্রিপেন্ড করতে একটি ডিসপ্লে বিশেষ নির্দিষ্ট করে। কাটা দেখুন।
মোড়ানো-উপসর্গ
এই সম্পত্তি প্রদর্শন সময় প্রতিটি ধারাবাহিকতা রেখার জন্য preend করতে একটি প্রদর্শন নির্দিষ্ট নির্দিষ্ট করে। কাটা দেখুন।

বিশেষত, before-stringসম্পত্তি আপনাকে 0 প্রস্থের ওভারলে দিয়েও বাফারের প্রদর্শনকে প্রভাবিত করতে দেয়। কোনটি এমন কিছু যা আপনি পাঠ্য সম্পত্তি নিয়ে করতে পারবেন না। আপনি পাঠ্য বৈশিষ্ট্যগুলির সাথে যা কিছু করেন তা হয় বিদ্যমান পাঠ্য (যা এই পাঠ্যটি আড়াল করতে পারে) এর উপর দিয়ে যেতে হবে বা আপনি সন্নিবেশ করা পাঠ্যের একটি নতুন স্ট্রিংয়ের উপরে যেতে হবে (যা বাফারের আসল বিষয়বস্তুগুলিকে পরিবর্তন করে )।

সে সম্পর্কে এখানে একটি উদাহরণ স্নিপেট। এটি একটি অস্থায়ী বাফারে মূল্যায়ন করুন।

(overlay-put (make-overlay (point) (point)) 'before-string "Hi there!")

এরা কখন খারাপ?

ওভারলেগুলি পাঠ্যের বৈশিষ্ট্যের তুলনায় অনেক বেশি চাহিদা (প্রক্রিয়াকরণ বুদ্ধিমান) are কিছু প্রাসঙ্গিক ক্রিয়াকলাপ (যেমন পাঠ্য সন্নিবেশ, যদি আমার ভুল হয় না) একটি বাফারের ওভারলে সংখ্যার সাথে আনুপাতিক সময় নেয়। যে কারণে, যখন আপনার প্রচুর সংখ্যক প্রয়োজন হয় তখন এগুলি অনুপযুক্ত। এই ক্ষেত্রে আপনার পাঠ্য বৈশিষ্ট্য থেকে পদত্যাগ করা উচিত।


12

ওভারলে এবং পাঠ্য বৈশিষ্ট্যের ঠিক একই ক্ষমতা রয়েছে। তারা পাঠ্যের একটি নির্দিষ্ট অংশে পরিবর্তন মার্জিন, বোতাম, মুখ, ফ্রঞ্জ আইকন, টুলটিপস, চিত্রগুলি, হাইলাইটস ইত্যাদি যুক্ত করে। তবে, একটি বিশাল ধারণাগত পার্থক্য রয়েছে:

ওভারলেগুলি স্বতন্ত্র , পাঠ্যের বৈশিষ্ট্যগুলি নয়। ইমাক্সের একটি পৃথক ওভারলে ধরণের রয়েছে, তবে কোনও "পাঠ্য সম্পত্তি প্রকার" নেই। পাঠ্য বৈশিষ্ট্যগুলি সেগুলি সেট করা স্ট্রিংয়ের সাথে সহজাতভাবে আবদ্ধ। অন্যদিকে ওভারলেগুলি একটি বাফারের সাথে সংযুক্ত থাকে।

এই পার্থক্যের কয়েকটি ব্যবহারিক প্রভাব রয়েছে:

  • আপনি স্ট্রিংগুলিতে পাঠ্য বৈশিষ্ট্যগুলি সেট করতে পারেন যা কোনও বাফারের অংশ নয়, যখন আপনার ওভারলেগুলির জন্য সর্বদা বাফার প্রয়োজন।
  • আপনি কোথাও যুক্ত হওয়া পাঠ্য বৈশিষ্ট্যগুলির তালিকা রাখতে পারবেন না, যেখানে কোনও বাফারে যুক্ত হওয়া ওভারলেগুলির তালিকা রাখা সহজ এবং উদাহরণস্বরূপ, আপনার সমস্ত ওভারলে একসাথে মুছুন।
  • আপনার কাছে একটি একক ওভারলে থাকতে পারে যা কোনও পাঠ্যে একাধিক ওভারলে সেট করে (উদাহরণস্বরূপ একটি মুখ, একটি সরঞ্জামদণ্ড এবং একটি ফ্রঞ্জ আইকন), যাতে আপনি একটি একক হিসাবে বৈশিষ্ট্যের একটি "গোষ্ঠী" পরিচালনা করতে ওভারলে ব্যবহার করতে পারেন, যেখানে নেই পাঠ্য বৈশিষ্ট্য জন্য যেমন জিনিস। আপনি এগুলি পৃথকভাবে সেট করেছেন এবং আপনি স্বতন্ত্রভাবে পরিচালনা করেন।

এই সমস্তটির সারমর্মটি হল আপনি পাঠ্য সামগ্রী থেকে আলাদাভাবে ওভারলেগুলি পরিচালনা করতে পারেন । ধারণাগতভাবে আপনি এগুলি জিনিসগুলির জন্য ব্যবহার করতে পারেন যা আপনি বাফারে প্রদর্শিত হবে, যদিও এটি পাঠ্য থেকে পৃথক।

ব্যবহারিকভাবে, আপনি যে জিনিসগুলিকে পাঠ্যে যোগ করতে চান তা ঘন ঘন পরিবর্তিত হয়, তবে আপনি যদি স্টাফটি ধ্রুবক থাকে তবে আপনি পাঠ্য বৈশিষ্ট্যগুলি ব্যবহার করবেন P

উদাহরণস্বরূপ, ইম্যাক্স M-x customizeবাফারে বোতাম এবং ইনপুট উইজেট তৈরি করতে পাঠ্য বৈশিষ্ট্যগুলি ব্যবহার করে । এই উইজেটগুলি একবার তৈরি হয়ে যায় এবং যতক্ষণ না বাফার বেঁচে থাকে ততক্ষণ সেখানে থাকে, সুতরাং ওভারলেগুলি আনার দরকার নেই।

তবে ফ্লাইচ বাফারে ত্রুটিগুলি হাইলাইট করার জন্য ওভারলেগুলি ব্যবহার করে, কারণ এটি ঘন ঘন হাইলাইটগুলি মুছে ফেলা এবং যুক্ত করা প্রয়োজন।

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