我想在org-mode缓冲区中使用mark-paragraph
(也用于前向/后向段移动),方法与其他主要模式相同,即标记由空行分隔的连续区域。这也应该适用于标题,列表项,以“#”开头的行等。 - 即我希望为了段落编辑的目的,将所有内容视为常规文本。
这可能吗?
答案 0 :(得分:5)
请参阅变量paragraph-start
和paragraph-separate
,还可能看到相关的use-hard-newlines
函数(但在这种情况下可能并不相关)。
(defun use-default-paragraph-delimiters ()
(setq paragraph-start (default-value 'paragraph-start)
paragraph-separate (default-value 'paragraph-separate)))
(add-hook 'org-mode-hook 'use-default-paragraph-delimiters)
编辑:不可否认,org-mode可能依赖于其段落定义,而不仅仅是交互式标记和移动,因此这里有一种更有针对性的方法,仅在调用时自定义这些命令的段落定义以交互方式使用其键绑定。
(defmacro with-default-paragraph-definition (&rest body)
"Evaluate body forms using the default definition of a paragraph."
`(let ((paragraph-start (default-value 'paragraph-start))
(paragraph-separate (default-value 'paragraph-separate)))
,@body))
(defalias 'my-org-mark-paragraph 'mark-paragraph)
(defadvice my-org-mark-paragraph
(around my-org-mark-paragraph-advice activate)
(with-default-paragraph-definition ad-do-it))
(defalias 'my-org-forward-paragraph 'forward-paragraph)
(defadvice my-org-forward-paragraph
(around my-org-forward-paragraph-advice activate)
(with-default-paragraph-definition ad-do-it))
(defalias 'my-org-backward-paragraph 'backward-paragraph)
(defadvice my-org-backward-paragraph
(around my-org-backward-paragraph-advice activate)
(with-default-paragraph-definition ad-do-it))
(defun my-org-paragraph-overrides ()
"Use the default paragraph definitions in org-mode
when marking or moving by paragraph."
(local-set-key [remap mark-paragraph] 'my-org-mark-paragraph)
(local-set-key [remap forward-paragraph] 'my-org-forward-paragraph)
(local-set-key [remap backward-paragraph] 'my-org-backward-paragraph))
(add-hook 'org-mode-hook 'my-org-paragraph-overrides)
答案 1 :(得分:1)
您可以尝试自定义paragraph-start
变量。我不确定
在这里适合的是,org将它设置为非常复杂的东西
正如您在下面引用的docstring中看到的那样。将其设置为默认值
可能会有效,或者您可以尝试use-hard-newlines
,如下面引用中所述。
paragraph-start是`paragraphs.el'中定义的变量。
它的价值是 “\ f \ | [] $ \ | \ + \ | [] #\ | \([] \([ - +] \ | \(\([ 0-9] + \)[。)] \)\)\ | [] + \ * \)\([] + \ | $ \)\ | [] * [:|] \ | \ $ \ $ \ | \\\(开始\ |端\ | [] [] \)“
原始值为“\ f \ | [] * $”
本地缓冲区编码网站;全球价值是“\ f \ | [] * $”
如果该变量的值为此文件本地变量,则此变量是安全的 满足谓词`stringp'。
文档: Regexp用于开始行的开头或分隔段落。 此正则表达式应匹配分隔段落的行 并且还应匹配开始段落的行 (并且是该段的一部分)。
这与左边距处的文本匹配,但不一定如此 该行的开头,所以它永远不应该使用“^”作为锚点。这个 确保段落功能在区域内同样有效 通过边距设置缩进的文本。
变量`paragraph-separate'指定如何区分 从分隔它们的行开始段落的行。
如果变量`use-hard-newlines'是非零的,那么只有a后面的行 硬新线被认为匹配。