আমি কীভাবে অনুচ্ছেদে এক-লাইন-প্রতি-বাক্যে বিভক্ত করতে পারি তবে তবুও এটিকে দৃষ্টি দিয়ে আবৃত রাখতে পারি?


14

এটি এক-বাক্য-প্রতি-লাইন (ফাংশন হিসাবে পাশাপাশি উদ্দেশ্য) দিয়ে ফাইলগুলি সম্পাদনা করার মতো, তবে আমি প্রতিটি বাক্যে ভিজ্যুয়াল ব্রেকের পরিবর্তে একটি পূর্ণ, প্রবাহিত অনুচ্ছেদে থাকতে চাই।

আমি একটি ছোটখাটো মোড রাখতে চাই যা সক্রিয় থাকাকালীনভাবে একই অনুচ্ছেদে (দৃশ্যমান \n\nবা দ্বারা পৃথক নয় paragraph-separate) লাইনগুলিতে দৃশ্যত যুক্ত হবে এবং তারপরে এমন আচরণ (সম্ভবত প্রাপ্ত হওয়া visual-line-mode) সক্রিয় করবে যা আসলে সন্নিবেশ না করেই লাইনটি মোড়বে \n

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


[...] দৃশ্যত যোগদান করবে [...]। আপনি কী বোঝাতে চাইছেন অন্তর্নিহিত \n(যদি উপস্থিত থাকে), বা আপনি চান যে এটি লাইনটি 1-অনুচ্ছেদে-প্রতি-লাইনে সরবরাহ করতে নতুনভাবে সরিয়ে ফেলতে চান?
জোনাথন লিচ-পেপিন

1
সম্ভবত আপনি buffer-display-tableনতুন লাইনগুলি \nশূন্যস্থান বা অন্য কিছুর মতো দেখানোর জন্য ব্যবহার করতে পারেন - লিঙ্কটিতে নিম্নলিখিত উদাহরণটি দেখুন: stackoverflow.com/a/24842771/2112489 এর সাথে সুবিধাটি হ'ল পাঠ্যটিতে লেখা নথি না রুপান্তরিত করা হয়েছে। নতুন লাইনটি যে কোনও বিষয়েই হতে পারে - যেমন একটি হাসি মুখ, স্পেসস, একটি পাইলক্রো প্রতীক ইত্যাদি The ভিজ্যুয়াল এফেক্টটি হ'ল মোড়ক ঘটবে।
আইনজীবি

@ জোনাথনলিচ-পেপিন আমি যেখানে নতুন লাইনের উপস্থিত রয়েছে তা রাখতে চাই। আসলে, আমি একটি বাক্য-সমাপ্তিতে নতুন লাইনটি জোর করতে চাই, তবে এটি পৃথক হুকের মাধ্যমে করা যেতে পারে।
শন অলরেড

1
@ লিওলিস্টের ভিজ্যুয়াল এফেক্টটি হ'ল নিউলাইনগুলি সর্বত্র চলে যাবে, তাই না? সমস্ত অনুচ্ছেদ এক হয়ে যাবে না?
মালবারবা

1
আমি এই অনুরোধটির প্রতি সহানুভূতিশীল তবে ভাবেন যে ওপি দ্বারা বর্ণিত মাইনর-মোডটি সঠিক সমাধান নয়। অন্তর্নিহিত সমস্যাটি হ'ল আলাদাভাবে পাঠ্যের জন্য এটি কার্যকরভাবে কাজ করে না কারণ এটি কোডের জন্য ডিজাইন করা হয়েছিল। ইমাসে এই ইস্যুটি নিয়ে কাজ করা একটি সম্ভাব্য তবে বিভিন্ন কারণে পরিষ্কার সমাধান নয়। পাঠ্যের সাথে ভালভাবে কাজ করার জন্য ডিফের উন্নতি করা আরও ভাল।
টমলসবার্গ

উত্তর:


3

টম যেমন বলেছিলেন, নতুন লাইনে একটি ডিসপ্লে সম্পত্তি রাখলে কাজ হবে।

সমস্যাটি হ'ল কোন লাইনগুলি মোড়ানো উচিত তা নির্ধারণ করা।

আপনাকে শুরু করার জন্য এখানে একটি উদাহরণ রয়েছে:

(let ((eol-regexp "[[:graph:]] ?\\(\n\\)[^\t\n ]"))
  (font-lock-add-keywords nil
   `((,eol-regexp 1 '(face default display " ")))))

(visual-line-mode 1)

এটি গ্রাফিকাল অক্ষরগুলির পূর্বে এবং নতুন লাইনটি ইনডেন্ট বা খালি না থাকলে নিউলাইনগুলি "মুছে ফেলবে"। আপনার জন্য কাজ করে এমন কিছু আবিষ্কার করতে আপনাকে পরীক্ষা করতে হবে।

আরও কিছু ব্যাখ্যা:

  1. font-lock-add-keywordsফন্ট লকিংয়ের জন্য নিয়মের একটি তালিকা যুক্ত করে (সুতরাং ফন্ট লকটি সক্ষম করা আবশ্যক The প্রথম যুক্তিটি একটি মোড হতে পারে (উদাহরণস্বরূপ text-mode)) আমাদের ক্ষেত্রে এটি নিল, যার অর্থ শুধুমাত্র বর্তমান বাফারের জন্য নিয়ম যুক্ত করুন।
  2. আমাদের "বিধি" (,eol-regexp 1 '(face default display " "))। প্রথম উপাদানটি হ'ল আমরা আগে নির্মিত নিয়মিত প্রকাশ; দ্বিতীয়টি হ'ল আমরা আগ্রহী এমন subexpression; তৃতীয়টি হল "মুখ" আমরা প্রয়োগ করতে চাই।
  3. নিউলাইনগুলির জন্য একটি মুখ ব্যবহার করা আমাদের পক্ষে কোনও উপকারী না হলেও আমরা পাঠ্য বৈশিষ্ট্যগুলিও যুক্ত করতে পারি। সুতরাং আমরা ডিফল্ট মুখটি ব্যবহার করি এবং প্রদর্শন বৈশিষ্ট্যের ডাইনি যুক্ত করার সাথে একটি স্থানের সাথে স্ট্রিং 1 (অর্থাৎ নিউলাইন) প্রতিস্থাপন করি।
  4. আপনি যদি নিজেকে পায়ে গুলি করেন তবে বাফারটি মুছুন বা দিয়ে কীওয়ার্ডটি মুছে ফেলুন font-lock-remove-keywords
  5. আপনিও যোগ displayকরতে চাইতে পারেন font-lock-extra-managed-props(আমি এটি চেষ্টা করি নি)।
  6. কৌশলযুক্ত অংশটি হ'ল রেজিপেক্সটি সঠিকভাবে পাওয়া। "\ (\ n \) [^ \ n]" এমন কোনও নতুন লাইনের সাথে মিলবে যা তাত্ক্ষণিকভাবে অন্য একটির পরে আসে না। "। \ {30, \} \ (\ n \)" কেবলমাত্র কমপক্ষে 30 টি অক্ষরের পূর্বে থাকা নতুন লাইনের সাথে মেলে।


0

যদি আমি সমস্যাটি সঠিকভাবে বুঝতে পারি তবে এটি হ'ল আপনি বাফারে সমস্ত নতুনলাইনগুলি সেভাবেই সংরক্ষণ করতে চান; তবে আপনি তাদের কয়েকটিকে স্পেস হিসাবে প্রদর্শন করতে চান। তারপরে, আপনি শব্দ-মোড়ানো চাই।

শব্দ মোড়ানোর জন্য আমি মনে করি আপনি ব্যবহার করতে পারেন visual-line-mode

নিউলাইনগুলি নিয়ে কাজ করার জন্য, আমার মনে হয় আপনি যে নতুন লাইনে আলাদাভাবে প্রদর্শন করতে চান তার জন্য আপনি সম্ভবত একটি displayসম্পত্তি " "(একটি একক স্থানের একটি স্ট্রিং) রেখে দিতে পারেন।

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