org-mode
は、Capture-Refile-Archive
機構を有する。私はしばしばメモやログを取るためにそれを使用します。私は自分の語彙を作るためにそれを使いたいと思っています。たとえば、いくつかの英語のテキストを読んでいるときにいくつかの新しい単語が出現すると、C-c c v e
と入力して単語を私の語彙ファイルWord-List-EN.org
に記録します。また、その単語が「Letters」に分類されることを願っています。例えば、cashew
は、/C/CA
というエントリーに記録されます。 C-c c v E
と入力して、私のエスペラント語をvortaro.org
のようなファイルに記録します。これを実装するにはorg-capture-templates
を設定するには?私はorg-infoを読んだが、まだ手掛かりはない。マニュアルには(function function-finding-location)
のようなものを使用できると書かれています。しかし私は自分自身を定義する必要がありますfunction-finding-location
。ホープelispのマスターが私を助けることができる!org-mode "capture-refile"メカニズムを使って自分の語彙を構築する方法は?
9
A
答えて
1
私は似たようなもののためにorg-captureを取得するのに大きな問題がありましたが、org-rememberはよく働いていました。ここに私の関連の.emacsビットです:
(require 'org-install)
(setq org-directory "~/.orgfiles/")
(setq org-default-notes-file (expand-file-name "~/.orgfiles/notes.org"))
(setq remember-annotation-functions '(org-remember-annotation))
(setq remember-handler-functions '(org-remember-handler))
(add-hook 'remember-mode-hook 'org-remember-apply-template)
(setq org-agenda-files '("~/.orgfiles"))
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-cc" 'org-remember)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)
(setq org-remember-templates
'(("Todo" ?t "* TODO %^{Brief Description} %^g\n%? Added: %U" "~/.orgfiles/TODO.org" "Tasks")
("Idea" ?i "* %^{Brief Description} %^g\n%? Added: %U" "~/.orgfiles/Idea.org" "Ideas")
("Study" ?s "* %^{Brief Description} %^g\n%? Added: %U" "~/.orgfiles/Study.org" "Study")
("Receipt" ?r "** %^{Brief Description} %U %^g\n%?" "~/.orgfiles/Receipt.org")
)
)
4
私はPMRは、テンプレートの一部としてファイルの場所を選択するための機能があまりにも早くあなたのニーズに起こるという事実について正しいと思います。
orgキャプチャのリフレッシュワークフローと統合する1つの方法は、標準のorgキャプチャテンプレートシステムを使用して新しい単語をvocabバッファに保存し、カスタムelisp関数をフックとして使用することです。おそらく、org-capture-before- finalize-hookを実行して、新しい定義を正しい場所に保存します。
単語と定義の入力を促し、正しい場所のorgバッファーに挿入するサンプルとして、次の関数を書きました。あなたのニーズに合っている場合は、これをあなたの選択したキーにバインドするか、フックアプローチの出発点として使用します。
;;
;; remove extra spaces between stars and the headline text
;;
(defun tidy-headlines()
(interactive)
(save-excursion
(goto-char (point-min))
(while (re-search-forward "^\\*+\\([[:space:]][[:space:]]+\\)" (point-max) t)
(replace-match " " nil nil nil 1))))
;;
;; function for storing things in vocab files like cashew /C/CA/Cashew
;;
(defun insert-vocab-word (vocab-word definition)
"prompts for a word then opens a vocab file and puts the word in place"
(interactive "sWord: \nsDefinition: ")
(find-file "~/org/vocab.org")
(tidy-headlines)
(goto-char (point-min))
(let* ((first-char (upcase (substring vocab-word 0 1)))
(first-two-chars (upcase (substring vocab-word 0 2))))
(while (and (re-search-forward "^\\* " (point-max) t)
(string< (buffer-substring-no-properties (point) (+ 1 (point))) first-char)))
(if (string= (buffer-substring-no-properties (point) (+ 1 (point))) first-char)
(let* ((end-of-subtree (save-excursion (org-end-of-subtree) (point))))
(while (and (re-search-forward "^\\*\\* " end-of-subtree t)
(string< (buffer-substring-no-properties (point) (+ 2 (point))) first-two-chars)))
(if (string= (buffer-substring-no-properties (point) (+ 2 (point))) first-two-chars)
(let* ((end-of-subtree2 (save-excursion (org-end-of-subtree) (point))))
(while (and (re-search-forward "^\\*\\*\\* " end-of-subtree2 t)
(string< (word-at-point) vocab-word)))
(if (string< vocab-word (word-at-point))
(progn
(beginning-of-line)
(org-insert-heading t))
(org-insert-heading-after-current))
(insert vocab-word)
(org-insert-subheading t)
(insert definition))
(progn
(if (string< first-two-chars (buffer-substring-no-properties (point) (+ 2 (point))))
(progn
(beginning-of-line)
(org-insert-heading t))
(org-insert-heading-after-current))
(insert first-two-chars)
(org-insert-subheading t)
(insert vocab-word)
(org-insert-subheading t)
(insert definition))))
(progn
(org-insert-heading-after-current)
(insert first-char)
(org-insert-subheading t)
(insert first-two-chars)
(org-insert-subheading t)
(insert vocab-word)
(org-insert-subheading t)
(insert definition)))))
+0
「vocab.org」は最初は空ではないはずです。 – Dror
関連する問題
- 1. ふるい分け機能のコードの袋に語彙を構築する
- 2. Tensorflowグラフ構築メカニズム
- 3. フレックス(語彙スキャナー)を使ってUTF-8文字を読む方法は?
- 4. tkinterを使って範囲スライダを構築する方法は?
- 5. Swift 2.3を使ってRealmを構築する方法は?
- 6. joomla!/ wordpressを使って自分のウェブサイトを構築できますか?
- 7. ダガー自体を構築する方法
- 8. Nantを使ってクラスライブラリを構築する方法
- 9. ドッカーを使ってマルチテナントアプリケーションを構築する方法
- 10. 内部オブジェクトを使ってオブジェクトを構築する方法
- 11. ドッカーを使ってJ2EEアプリケーションを構築する方法
- 12. VS 2015を使ってBoost 1.44を構築する方法
- 13. xcassetsを使ってフレームワークを構築する方法
- 14. 語彙分散プロットが無効です
- 15. ノードでJavaで自分自身のキューを構築する
- 16. 戦術を使って構築された用語をきれいに印刷する方法は?
- 17. py2exeを使ってexeファイルに私のスパイダーを構築する方法は?
- 18. Dockerfileを使ってスプリングブートドッカーのイメージを正しく構築する方法は?
- 19. Sitecore 6.2で言語依存サイトを構築する方法は?
- 20. 遠方のコンピュータを使ってAndroidアプリを構築する
- 21. 感情分析に使用するためにトルコ語のためのwordnetを構築する方法
- 22. Python:gensim:RuntimeError:モデルをトレーニングする前に最初に語彙を構築する必要があります
- 23. RecyclerViewを使ってGridLayoutの構築を元に戻す方法は?
- 24. tensorflow、contrib.learnを使って既存の語彙に単語を追加するには?
- 25. 自分の言語をJavaファイルに構文解析する方法
- 26. angular2を使用してエキスパンドドロップダウンを構築する方法は?
- 27. RDFの語彙と述語
- 28. テンソルフロー語彙プロセッサー
- 29. Hibernateの基準と投影を使ってクエリを構築する方法
- 30. C++や他のPLを使ってCインタプリタを構築する方法
「/ C/CA」はツリーの見出しであるべきですか、またはサブレベルを示すにはスラッシュを意味しますか? – pmr
私が見ている主な問題はこれです: 'org-capture'はあなたがそれを呼び出すときに場所を決めます。つまり、まだ単語を挿入していないので、その時点でその場所を選択することはできません(意味がありますか?)。ですから、キャプチャではなくカスタムの再フォーマットが必要です。キャプチャした単語を適切なファイル( 'english.org')に送信してから、あなたのカスタムファイルを使用してください。 – pmr
はい、/ C/CAは2番目のサブレベルを意味し、 'C 'の下にはエントリ' CA 'を意味します。 – Vivodo