subgree থেকে নতুন ফাইল তৈরি করার জন্য org-mode কমান্ড?


5

Emacs ORG-মোডে, যেমন একটি কমান্ড আছে new-file-from-subtree?

আমি মনে করি, এই কমান্ডটি বর্তমান ফাইল থেকে সাবট্রি কেটে দেবে, সাবট্রিটি একটি নতুন বাফারে আটকে দেবে, তারপর নতুন বাফারটি সাবট্রি নামের সাথে সংরক্ষণ করবে।

উত্তর:


4

আমি এই ধরনের কমান্ড বর্তমানে বিদ্যমান বিশ্বাস করি না। তবে নিম্নলিখিত কৌশলটি করবে:

(require 'org-element)

(defun zin/org-file-from-subtree (&optional name)
  "Cut the subtree currently being edited and create a new file
from it.

If called with the universal argument, prompt for new filename,
otherwise use the subtree title."
  (interactive "P")
  (org-back-to-heading)
  (let ((filename (cond
                   (current-prefix-arg
                    (expand-file-name
                     (read-file-name "New file name: ")))
                   (t
                    (concat
                     (expand-file-name
                      (org-element-property :title
                                            (org-element-at-point))
                      default-directory)
                     ".org")))))
    (org-cut-subtree)
    (find-file-noselect filename)
    (with-temp-file filename
      (org-mode)
      (yank))))

যেমন, এটি বর্তমান শিরোনামটিকে স্তর 1 তে উন্নীত করবে না, এটি বিদ্যমান গভীরতা বজায় রাখবে। (প্রচার এছাড়াও ভাল হিসাবে কাজ করা উচিত, কিন্তু আরো জটিল কোড প্রয়োজন হবে)। এটি ব্যবহার করে একটি নতুন ফাইলের নাম অনুরোধ করার বিকল্পও দেয় C-u


অসাধারণ! এটি যোগ করতে কোন উপায় .org ফাইল নাম কি? এটা কি আমাকে আসল বাফারে ফিরিয়ে আনতে পেরেছিল?
incandescentman

এছাড়াও আমি একটি keybinding যোগ করার চেষ্টা কিন্তু এটি কাজ করে না। স্পষ্টত আমি কিছু ভুল করছি। (add-hook 'org-mode-hook (lambda () (local-set-key "C-c C-x n" 'my-zin-org-new-file-from-subtree)))
incandescentman

1
শিরোনাম শিরোনাম থেকে তৈরি করা হয়েছে যখন ফাইলের নাম যুক্ত ".org" যোগ করা হয়েছে। এটি এখন ব্যাকগ্রাউন্ডে নতুন ফাইল খুলবে তবে বাফারগুলি পরিবর্তন করবে না।
Jonathan Leech-Pepin

1
Keybinding জন্য, এটি পরিবর্তন করুন "\C-c\C-xn" এবং এটা কাজ করা উচিত।
Jonathan Leech-Pepin
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.