经过一些试验和错误后,我已经达到以下配置,这是在Vim中使用硬盘中断编辑Markdown文件的最佳配置:
setlocal formatoptions=tacqw
setlocal textwidth=80
setlocal wrapmargin=0
setlocal autoindent
这会自动回退带有硬分解的段落,并且它也适用于项目符号列表。
这是一个问题:fo=w
允许您标记一条线,以便不通过不包括尾随空格来回流。这在所有情况下都非常有效,除非您想在Markdown中获得<br>
,因为其语法是包含两个尾随空格。
我有什么方法可以配置vim,这样我可以在回流时获得很好的休息时间,但是当我有两个尾随空格时,哪里会禁用回流?
或者,有没有办法让Markdown处理不以空格作为换行符结束的行?
答案 0 :(得分:0)
好的,所以这是我自己的解决方案。不是很优雅,但无论如何:
我刚刚决定使用Vim约定(NoSpaceAtEnd == LineBreak),但是在编译它之前通过sed发送我的所有降价(我在脚本中执行它,所以它不是那么多额外的工作)。基本上,sed将两个空格附加到任何不以空格结尾的行(保留以一个空格结尾的行不变):
cat "${input}" \
| sed "s/\([^ ]\)$/\1 /" \
> "${input}.preprocessed"
pandoc -f markdown -t html -s --ascii \
-i "${input}.preprocessed" \
-o "${input}.html"
这也可以直接通过管道传输到pandoc以避免生成临时文件,但由于它是正确降价的临时文件,而不是我的原始文件,我认为如果我需要它可以使用它是很方便的将它粘贴到某个地方,而不是通过pandoc运行它。
我仍然非常欣赏,接受并赞成任何替代解决方案。
答案 1 :(得分:0)
此问题可能是在您提出问题之后发生的,但在Pandoc的扩展版Markdown中,您可以使用\
转义换行符。因此,如果您在一行的末尾添加反斜杠,那么在转换为HTML时,您将获得<br>
- 标记。例如:
This paragraph\
will have hard line breaks\
when converted to another format with Pandoc.
这是根据Pandoc手册,该手册说明了Pandoc版Markdown中的所有字符can be escaped。
如果你想坚持使用原版Markdown而不是Pandoc的扩展版本(如果你知道你只是要转换为HTML),你可以直接将<br>
- 标记放在Markdown文件中,因为Markdown支持inline HTML。像这样:
This paragraph <br>
will have hard line breaks<br>
when converted to HTML.