これは、必要に応じて変更できる高速で不潔なelisp関数です。
(defun subtree-to-new-file()
(インタラクティブ)
「組織のサブツリーを新しいファイルに移動するのを手際よく支援する」
(org-copy-subtree nil t)
;;; この長いsetqステートメントは、最初の見出しのタイトルを取得して、新しい.orgファイルのデフォルトのファイル名として使用します。
(setq最初の見出し
(with-temp-buffer
(ヤンク)
(バッファの始まり)
(search-forward "" nil nil 1)
(setq title-start(ポイント))
(視線の終わり)
(setq title-end(ポイント))
(setq first-heading(buffer-substring title-start title-end))
))
(setq def-filename(concat first-heading ".org"))
(let((insert-default-directory t))
(find-file-other-window
(read-file-name "サブツリーをファイルに移動:" def-filename)
))
(org-paste-subtree)
;;; この最後のコマンドは、新しい.orgファイルをアジェンダに追加します
(org-agenda-file-to-front)
)
*scratch*
バッファに貼り付けてCtrl+を押すと、このコードを簡単に試すことができますj。次に、組織モードファイルのサブツリーに移動し、Alt+ xを押しますM-x subtree-to-new-file
。
emacsを使用するたびに所定の場所に配置し、elispに完全に慣れていない場合、最も簡単な方法は、このコードを.emacs
構成ファイルのどこかに貼り付けて保存することです。また、関数の前後に行を追加して、キーバインドを与えることもできます。そのための最も簡単な方法(ただし、最善ではないかもしれません)は次のようなものです(global-set-key "\C-xw" 'subtree-to-new-file)
。