2

我希望 Emacs 用悬挂缩进包装 Markdown 样式的列表项。事实上,即使在 中fundamental-mode,这也很有效。考虑这三个列表项:

* Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

- Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+ Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

使用M-q( fill-paragraph) 填充时,结果为

* Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
  eiusmod tempor incididunt ut labore et dolore magna aliqua.

- Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
  nisi ut aliquip ex ea commodo consequat.

+ Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur.

请注意,前两个是我想要的,但最后一个不是。我无法理解为什么在最后一种情况下行为不同,以及如何适当地修改它。

源代码中的注释fill-paragraph说明尝试了以下步骤:

  1. 如果区域在交互调用时处于活动状态,则填充该区域。
  2. 试试fill-paragraph-function
  3. 试试我们的语法感知填充代码。
  4. 如果这一切都失败了,默认为好的 ol' 文本段落填充。

当我按下以填充这些列表项时,没有活动区域M-q,因此应跳过第 1 步。我还没有定义一个fill-paragraph-function (我验证它fill-paragraph-functionnilfundamental-mode

这意味着我们进入第三步。在 中fundamental-mode,所有三个列表标记都具有相同的语法(用 验证describe-char):

character: * (displayed as *) (codepoint 42, #o52, #x2a)
   syntax: _    which means: symbol

character: - (displayed as -) (codepoint 45, #o55, #x2d)
   syntax: _    which means: symbol

character: + (displayed as +) (codepoint 43, #o53, #x2b)
   syntax: _    which means: symbol

因此,我不明白为什么这一步会以不同的方式对待这些段落。在查看源代码时,似乎这只是试图处理评论,所以我认为相信在上述情况下跳过了三个。

所以,我们似乎进入了第四步,它使用了 paragraph-start. 我尝试设置paragraph-start为以下(允许标记前有空格):

"\f\\|[ \t]*$\\|^[ \t]*[*+-] "

这也不起作用,所以我不知道如何进行这项工作。

我是否需要编写自定义填充段落功能,还是有更简单的方法?

4

2 回答 2

2

一个简单的解决方案是使用adaptive-fill-regexp. 该变量是一个正则表达式,它匹配构成缩进的行首的文本。在上述情况下,我们希望将列表标记计入缩进。

在前两种情况下,这些标记已经在 的默认值中adaptive-fill-regexp,如 中所定义fill.el

"[ \t]*\\([-–!|#%;>*·•‣⁃◦]+[ \t]*\\)*"

请注意,尽管第一组的字符集中有很多不同的项目符号字符,但加号 (+) 不是。对于上述三种情况,以下方法可以解决问题:

"[ \t]*\\([*+-][ \t]*\\)*"
于 2013-03-02T16:05:32.810 回答
0

我认为您只需要从 Elpa / package.el 更新您的降价模式(或许还可以获取降价模式+)

确保你有奶盒,果酱回购。

我只是试了一下用例....注意markdown-mode / markdown-mode+的版本

在此处输入图像描述

于 2013-03-02T19:56:30.940 回答