0

我正在编辑包含一些代码示例的降价文件(如这里)。有没有办法告诉vim,在编辑markdown文件时,将textwidth = 80设置为除我保留代码语法的位置之外的所有内容?例如:

Here is a text within a markdown file // textwidth=80

    puts 'Hello World' // textwidth is not specified
4

3 回答 3

2

您可以使用以下命令动态更改'textwidth'设置:autocmd

:autocmd CursorMoved,CursorMovedI <buffer> let &textwidth = (getline('.') =~# '^    ' ? 0 : 80)

这将检查 Markdown 代码(缩进 4 个空格),然后清除 textwidth。

于 2013-05-22T07:11:00.103 回答
1

我不知道如何简单地设置tw选项以满足您的要求。但是我想出了一个功能,它可以做你想做的事:

function! WrapMD()
   let x=&tw
   let &tw=80
   normal! gqq
   let &tw=x
endfunction

此功能仅tw=80在当前行上进行格式化,之后恢复您的原始tw设置。

您可以获取该功能(或将其放在您的 vimrc 中),然后执行以下操作:

:v/\v^( {4}|\t)/call WrapMD()

在您想要格式化您的 MD 文本的任何时候。

您还可以为此创建映射或将其放入autocmdon 事件中BufWritePre

在这里,我在测试功能时制作了一个 gif:

在此处输入图像描述

于 2013-05-21T22:45:12.853 回答
1

我经常使用 pandoc 来整理 markdown:pandoc -t markdown会包装 markdown,但不会包装代码块。它还可以很好地整理列表和块引号。vim-pandoc 插件设置'equalprg'pandoc -t markdown --reference-links.

于 2013-05-27T03:17:02.673 回答