【问题标题】:Using vim autoformat with markdown documents将 vim 自动格式化与 markdown 文档一起使用
【发布时间】:2014-02-10 00:24:26
【问题描述】:

经过反复试验,我得出以下配置,这是在 Vim 中编辑 Markdown 文件的最佳配置:

setlocal formatoptions=tacqw
setlocal textwidth=80
setlocal wrapmargin=0
setlocal autoindent

这会自动重排带有硬中断的段落,并且它也适用于项目符号列表。

这就是问题所在:fo=w 允许您标记一行,以便它不会通过不包含尾随空格来重排。这在所有情况下都非常有效,除非您想在 Markdown 中获得 <br>,因为它的语法是包含两个尾随空格。

我有什么方法可以配置 vim,以便我在回流时获得很好的硬中断,但是当我有两个尾随空格时,回流被禁用?

或者,有没有办法让 Markdown 将 以空格结尾的行视为换行符?

【问题讨论】:

    标签: vim markdown


    【解决方案1】:

    好的,这是我自己的解决方案。不是很优雅,但不管用:

    我刚刚决定使用 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 运行。

    我仍然非常感谢、接受并支持任何替代解决方案。

    【讨论】:

      【解决方案2】:

      此功能可能在您提出问题后出现,但在 Pandoc 的 Markdown 扩展版本中,您可以使用 \ 转义换行符。因此,如果您在行尾添加反斜杠,则在转换为 HTML 时会在此处获得 <br>-tag。例如:

      This paragraph\
      will have hard line breaks\
      when converted to another format with Pandoc.
      

      这是根据 Pandoc 手册,它说所有字符 can be escaped 在 Pandoc 的 Markdown 版本中。

      如果您想坚持使用原始 Markdown 而不是 Pandoc 的扩展版本(并且如果您知道您只是要转换为 HTML),您可以将 <br>-tag 直接放在 Markdown 文件中,因为 Markdown 支持 @ 987654322@。像这样:

      This paragraph <br>
      will have hard line breaks<br>
      when converted to HTML.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-27
        • 2018-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多