我正在编辑包含一些代码示例(like here)的降价文件。有没有办法告诉vim,当它正在编辑markdown文件时,将textwidth = 80设置为我保留代码语法的所有内容?例如:
Here is a text within a markdown file // textwidth=80
puts 'Hello World' // textwidth is not specified
答案 0 :(得分:2)
您可以使用'textwidth'
动态更改:autocmd
设置:
:autocmd CursorMoved,CursorMovedI <buffer> let &textwidth = (getline('.') =~# '^ ' ? 0 : 80)
这将检查Markdown代码(缩进4个空格),然后清除textwidth。
答案 1 :(得分: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文本的任何时候。
您还可以为其创建映射,或将其放在事件autocmd
上的BufWritePre
。
我在测试函数时创建了一个gif:
答案 2 :(得分:1)
我经常使用pandoc来整理markdown:pandoc -t markdown
将包装markdown,但不包括代码块。它还可以很好地整理列表和阻止引号。 vim-pandoc插件将'equalprg'
设置为pandoc -t markdown --reference-links
。