কীভাবে ফিল-অঞ্চল / অনুচ্ছেদটিকে অনুচ্ছেদের উপসর্গ সনাক্ত করবেন?


11

ধরা যাক আমার নীচের বাফারটি আছে।

1. lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum

নিম্নলিখিত M-qসময়ে এখানে হিট text-mode

1. lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem
ipsum lorem ipsum lorem ipsum lorem ipsum

অন্যদিকে, যদি আমি সক্রিয় করি তবে আমি markdown-modeনিম্নলিখিতগুলি পেয়েছি (মার্কডাউন কেবল একটি উদাহরণ, আপনি বিভিন্ন মোডে অনুরূপ আচরণ দেখেন)।

1. lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem
   ipsum lorem ipsum lorem ipsum lorem ipsum

এটি করার জন্য আমি কীভাবে পাঠ্য-মোড কনফিগার করব?

আমি কল্পনা করেছিলাম একটি বিশেষ fill-paragraph-functionরচনা দ্বারা এটি অর্জন করা যেতে পারে তবে এই পরিবর্তনশীলটি কেবলমাত্র সেট আপ করা nilআছে markdown-mode, তাই সম্ভবত একটি সহজ উপায় আছে।

উত্তর:


6

আমি দীর্ঘদিন ধরে ফিল্লাপ্যাপ্ট-মোডের একটি সুখী ব্যবহারকারী, যা এই ধরণের জিনিসটিকে খুব সুন্দরভাবে পরিচালনা করে। তথ্যের জন্য, দেখুন

http://emacswiki.org/emacs/FillAdapt

এই পৃষ্ঠা থেকে:

কাইলজোনস দ্বারা ফিল্ড্যাপ্ট ইমেলসের ফিল ফাংশনগুলিকে বাড়িয়ে তোলে যেমন একটি পূরণের উপসর্গ অনুমান করে যেমন প্রোগ্রাম কোডের একটি মন্তব্য ক্রম এবং "1." এর মতো বুলেট পয়েন্টগুলি পরিচালনা করে বা "*"।

উদাহরণস্বরূপ, এটি এটি ঘুরিয়ে দিতে পারে

* Pretend I'm a really super long line.
* And the window's narrow.

মধ্যে

* Pretend I'm a really super
  long line.
* And the window's narrow.

ঠিক আছে, যে ঠিকানা সম্পাদনা।
ক্রিস

এই মোডটি ডাব্লু / অন্য মোডের সাথে সংযুক্ত (add-hook 'org-mode-hook 'turn-on-filladapt-mode)করতে আপনার কনফিগার ফাইলে কিছু যুক্ত করুন (লিঙ্কযুক্ত উইকি পৃষ্ঠায় এই তথ্যটি সরাসরি উপলভ্য নয়)।
চিহ্নিত করুন

fill-paragraphব্লককোটের মধ্যে সঠিকভাবে আচরণ করতে সুন্দর করে কাজ করে markdown-mode
র‌্যাডন রোসবারো

উত্তরের পরে কেটে গেছে 2 বছর। ডাউনলোড লিংকটি আশ্চর্যজনকভাবে ডাউনলোড করুন / ডাউনলোড / ফিল্ল্যাপআপ.এল আর উপলভ্য নয়।
ট্যাঙ্কম্যান

লিঙ্কটি এখনই আমার জন্য কাজ করে। হয়তো সাইটের সাথে অস্থায়ী সমস্যা ছিল।
ক্রিস

3
(fill-paragraph &optional JUSTIFY REGION)

[...]

If `fill-paragraph-function' is non-nil, we call it (passing our
argument to it), and if it returns non-nil, we simply return its value.

If `fill-paragraph-function' is nil, return the `fill-prefix' used for filling.

[...]

markdown-modeফাংশনটি ফিলিংয়ের জন্য ব্যবহার করে এমনটি সম্ভবত সেট fill-paragraph-functionকরে ।nilfill-prefix

(let ((fill-prefix (make-string (length "1. ") ? ))
  (fill-paragraph))

সম্পূর্ণ উদাহরণ:

(let* ((num 15)
       (numstr (format "%d. " num))
       (fill-prefix (make-string (length numstr) ? )))
  (with-temp-buffer
    (loop for i from 1 to 15 do
          (insert (format "lorem ipsum (%d) doler sit amet " i)))
    (beginning-of-line)
    (insert numstr)
    (fill-paragraph)
    (buffer-string)))

;; =>

"\
15. lorem ipsum (1) doler sit amet lorem ipsum (2) doler sit amet
    lorem ipsum (3) doler sit amet lorem ipsum (4) doler sit amet
    lorem ipsum (5) doler sit amet lorem ipsum (6) doler sit amet
    lorem ipsum (7) doler sit amet lorem ipsum (8) doler sit amet
    lorem ipsum (9) doler sit amet lorem ipsum (10) doler sit amet
    lorem ipsum (11) doler sit amet lorem ipsum (12) doler sit amet
    lorem ipsum (13) doler sit amet lorem ipsum (14) doler sit amet
    lorem ipsum (15) doler sit amet "

1
"মার্কডাউন-মোড সম্ভবত ভরাট-অনুচ্ছেদ-ফাংশনটি শূন্য করতে সেট করে যাতে ফাংশনটি ফিলিংয়ের জন্য ফিল-প্রিফিক্স ব্যবহার করে।" এটি পুরো গল্প হতে পারে না। আমি যখন আঘাত M-q, fill-paragraphসরাসরি প্রার্থনা করা হয় (সেখানে দিন-বেঁধে কোন হচ্ছে এটি প্রায়)। যদিও এটি সম্ভব যা fill-prefixশেষ পর্যন্ত এই উদ্দেশ্যে ব্যবহৃত হয়, এমন কিছু কনফিগারেশন ভেরিয়েবল থাকতে হবে যা এটি স্বয়ংক্রিয়ভাবে সনাক্তকরণের অনুমতি দেয়।
মালবারবা

1
@ মালবারবা দেখে মনে হচ্ছে markdown-modeআসলে এটি অনুচ্ছেদের সংজ্ঞাগুলির মাধ্যমে করে: gist.github.com/vermiculus/88759fd9f8368adbf663
শন অলরেড

হ্যাঁ, এটি দেখতে আরও ভাল লাগে।
মালবারবা

2

শানের টুকরোটি আমাকে সঠিক দিকে ইশারা করেছিল, এবং এখানে স্নিপেট এটি সমাধান করেছে।

(defun my-adaptive-fill-function ()
  "Return prefix for filling paragraph or nil if not determined."
  (cond
   ;; List item inside blockquote
   ((looking-at "^[ \t]*>[ \t]*\\([0-9]+\\.\\|[*+-]\\)[ \t]+")
    (replace-regexp-in-string
     "[0-9\\.*+-]" " " (match-string-no-properties 0)))
   ;; Blockquote
   ((looking-at "^[ \t]*>[ \t]*")
    (match-string-no-properties 0))
   ;; List items
   ((looking-at "^\\([ \t]*\\)\\([0-9]+\\.\\|[\\*\\+-]\\)\\([ \t]+\\)")
    (match-string-no-properties 0))
   ;; No match
   (t nil)))

;; Paragraph filling in text-mode.
(add-hook 'text-mode-hook
  (lambda ()
    (set (make-local-variable 'paragraph-start)
         "\f\\|[ \t]*$\\|[ \t]*[*+-] \\|[ \t]*[0-9]+\\.[ \t]\\|[ \t]*: ")
    (set (make-local-variable 'paragraph-separate)
         "\\(?:[ \t\f]*\\|.*  \\)$")
    (set (make-local-variable 'adaptive-fill-first-line-regexp)
         "\\`[ \t]*>[ \t]*?\\'")
    (set (make-local-variable 'adaptive-fill-function)
         'my-adaptive-fill-function)))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.