6

私は本当にorg-modeを使いたいです。

しかし、org-mode を使用して、別の見出し構文を使用して既に記述されている構造化文書を理解したい、

たとえば、twiki の ---+ を使用する

---+ H1 

Top level

---++ H2

Nested

---+ H1 #2

Second top level

またはmediawikiのような

= H1 = 

Top level

== H2 ==

Nested

= H1 #2 =

Second top level

これらのさまざまな見出しスタイルを使用するだけで、org-mode の折りたたみなどの利点をすべて利用したいと考えています。


実際には、さらに悪いことに:

たとえば、組織モードのアスタリスクの見出しよりも、twiki や mediawaiki の見出しを優先してほしいと思います。でも両方使いたい。

= H1 =

Top level

* this is a list
** nested
* list
** nested

== H2 ==

Nested

= H1 #2 =

Second top level

--+ これまでに試したこと

アウトライン モードを使用して twiki を処理することができました。

---+ Emacs stuff
# try (defvar twiki-outline-regexp "---+\\++ \\|\\(\\(?:   \\)+\\)[0-9*] ")
Local Variables: ***
outline-regexp: "^---\\++" ***
org-outline-regexp: "^---\\++" ***
End: ***

ただし、 org-outline-regexp は、私が望んでいたことをしません。

emacs の Outline-mode の out-level 関数は、私が求めているものとほとんど同じです。

(defvar outline-level 'outline-level
  "*Function of no args to compute a header's nesting level in an outline.
It can assume point is at the beginning of a header line and that the match
data reflects the `outline-regexp'.")

つまり、regexps の代わりに汎用関数を使用します。

しかし、組織モードで動作させることはできませんでした。org-mode は実際にはこれを使用していないか、むしろ他のものを持っているようです。

;; In Org buffers, the value of `outline-regexp' is that of
;; `org-outline-regexp'.  The only function still directly relying on
;; `outline-regexp' is `org-overview' so that `org-cycle' can do its
;; job when `orgstruct-mode' is active.
(defvar org-outline-regexp "\\*+ "
  "Regexp to match Org headlines.")
(defconst org-outline-regexp-bol "^\\*+ "
  "Regexp to match Org headlines.
This is similar to `org-outline-regexp' but additionally makes
sure that we are at the beginning of the line.")

(defconst org-heading-regexp "^\\(\\*+\\)\\(?: +\\(.*?\\)\\)?[ \t]*$"
  "Matches an headline, putting stars and text into groups.
Stars are put in group 1 and the trimmed body in group 2.")

これに失敗すると、まあ、私が組織モードに望む主なものはリンクです。ここで別の質問をする How can I "linkify" a non-org-mode buffer in emacs

4

1 に答える 1

4

私のフラストレーションは、org-mode には、outline-mode とは異なる新しいアウトライン セクションを構成するルールがあるということでした。アスタリスクの後にスペースが必要なため、それらのスペースがない私の膨大なメモのコレクションでは機能しません。

org-outline-regexpバッファローカル変数の初期化に使用される、十分に文書化されていない変数の末尾のスペースを削除することで解決しましたが、それはoutline-regexp私にとってはうまくいっているようです。例えば(set-variable 'org-outline-regexp "\\*+")

あなたの実際の質問に関しては、twiki や mediawiki の見出しなどの根本的に異なるものを処理するには、他の正規表現とコードを変更する必要があると思います。

于 2012-08-14T12:51:19.387 に答える