Org- মোডে উত্স কোড ব্লককে কীভাবে স্বয়ংক্রিয়ভাবে ফর্ম্যাট করা যায়


11

যখন আমি কোনও বই সম্পর্কে নোট নিতে org-মোড ব্যবহার করছি, কখনও কখনও আমি নোট ফাইলটিতে কিছু কোড স্নিপেটগুলি অনুলিপি / পেস্ট করব। এটি পেস্ট করার পরে, আমি করব

1. `C-c '` to call `org-edit-special`
2. `C-x h` to mark all the source code
3. `TAB` to format it

আমার জন্য কি org- মোডে এমন কোনও সমাধান রয়েছে যা কোড আটকানোর পরে #+BEGIN_SRC...#+END_SRCএটি স্বয়ংক্রিয়ভাবে কোড ব্লকটি ফর্ম্যাট করবে বা আমি কেবলমাত্র একটি কী ব্যবহার করতে পারি যেমন TABপুরো সোর্স কোড ব্লকটি ফর্ম্যাট করতে (ইনডেন্ট) করতে পারি?

ডিফল্ট TAB(ব্লকটিতে টাইপ করা, ব্যবহার না করে C-c ') সমস্ত #+BEGIN_SRCশিরোনামের পরে 2 টি কলামগুলি সারিবদ্ধ করে রাখে , যদি দ্বিতীয় লাইনের শুরুতে ফাঁকা স্থান থাকে, তবে এটি আরও স্পেস যুক্ত করবে, এটি 3 টি পদক্ষেপের মতো সমস্ত লাইন ইন্ডেন্ট করবে না।

উত্তর:


7

নীচে একটি কঠিন সমাধান দেওয়া হয়েছে, তবে এটি নিখুঁতভাবে কাজ করে। প্রকৃতপক্ষে এটি কেবলমাত্র একটি ফাংশন যা আপনার ক্রিয়াকলাপকে সিমুলেশন run-at-timeকরে এবং প্রতি 10 সেকেন্ডে এটি কল করার জন্য একটি ব্যবহার করে। চিয়ার্স।

(defun indent-org-block-automatically ()
  (when (org-in-src-block-p)
   (org-edit-special)
    (indent-region (point-min) (point-max))
    (org-edit-src-exit)))

(run-at-time 1 10 'indent-org-block-automatically)

অবশ্যই, আপনি এটি প্রতি 1 সেকেন্ডে কল করতে পারেন, কেবল 10 থেকে 1 পরিবর্তন করুন।


আমার run-at-timeআসলে দরকার নেই , যখন TABআমি ডিফল্টটি প্রতিস্থাপন করতে কী করতে পারি তা কীভাবে আবদ্ধ করতে পারি । ডিফল্ট আবদ্ধ তবে এটি আমার পোস্টে যেমন বলেছিল তেমন কাজ করবে। TABorg-in-src-block-pTAByas-expand
কোডিচান


0

এই সমস্যাটি সমাধান করার জন্য আমি এই কোডটি লিখেছি:

(defun udf/my-org-tab-dwim (&optional arg)
  (interactive)
  (or (org-babel-do-key-sequence-in-edit-buffer (kbd "TAB"))
      (org-cycle arg)))

(define-key org-mode-map
  (kbd "<tab>") #'udf/my-org-tab-dwim)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.