Vim自动折线减价

Vim自动折线减价,vim,markdown,Vim,Markdown,我的vimrc中有以下两行: set textwidth=80 set formatoptions-=t 这允许我使用命令(如gq)格式化源代码,使80个字符后有换行符。这对我来说很有效 但是,在编辑某些标记源(.md文件)时,我注意到,当我键入表单的无序列表元素时: * My unordered list element vim在80个字符后自动换行 一个简单的解决方法是使用+符号而不是星号,但我很好奇这种情况下出现不同行为的原因是什么。尝试在没有任何插件或配置的情况下运行vim vim

我的
vimrc
中有以下两行:

set textwidth=80
set formatoptions-=t
这允许我使用命令(如
gq
)格式化源代码,使80个字符后有换行符。这对我来说很有效

但是,在编辑某些标记源(.md文件)时,我注意到,当我键入表单的无序列表元素时:

* My unordered list element
vim
在80个字符后自动换行


一个简单的解决方法是使用
+
符号而不是星号,但我很好奇这种情况下出现不同行为的原因是什么。

尝试在没有任何插件或配置的情况下运行vim

vim -u NONE test.md
set textwidth=80
set formatoptions-=t
如果您这样做,那么文本将不会自动换行,这告诉我们它必须是一个插件或
.vimrc
文件中的某个内容

您可以使用
:scriptnames
找到哪些插件的来源


我会禁用所有插件,然后逐个重新启用它们,直到问题再次出现。

这可能是由
$VIMRUNTIME/ftplugin/markdown.vim中的以下两行引起的:

setlocal formatoptions+=tcqln
setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
你可以跟我核对一下

:verbose setlocal formatoptions?

要撤消效果,请将相应的
:setlocal
命令放入
~/.vim/after/ftplugin/markdown.vim

是否启用了用于标记的插件?因为这可能会覆盖您的默认设置。我正在使用的是,如果禁用该插件,您是否可以尝试一下这种情况?请注意,我的无知,这不是插件,而是语法文件。无论如何,即使删除了插件/语法文件,问题仍然存在。这取决于您想要的确切格式,例如
setlocal formatoptions-=t
(撤消包装)或
setLocalFormatOptions+=tcqln
(撤消每个ftplugin格式设置)。