当我打开标记文件时,Vim正在读取我的html.Vim文件吗?

当我打开标记文件时,Vim正在读取我的html.Vim文件吗?,vim,Vim,我有一个文件~/.vim/ftplug/markdown.vim,其中包含以下指令: setlocal tabstop=4 setlocal shiftwidth=4 setlocal softtabstop=4 setlocal expandtab setlocal tabstop=2 setlocal shiftwidth=2 setlocal softtabstop=2 setlocal expandtab 我还有一个ht

我有一个文件~/.vim/ftplug/markdown.vim,其中包含以下指令:

    setlocal tabstop=4
    setlocal shiftwidth=4
    setlocal softtabstop=4
    setlocal expandtab
    setlocal tabstop=2
    setlocal shiftwidth=2
    setlocal softtabstop=2
    setlocal expandtab
我还有一个html.vim文件,其中包含以下指令:

    setlocal tabstop=4
    setlocal shiftwidth=4
    setlocal softtabstop=4
    setlocal expandtab
    setlocal tabstop=2
    setlocal shiftwidth=2
    setlocal softtabstop=2
    setlocal expandtab

我发现每当我编辑一个.md文件时,我都可以执行“:set sw=?”并看到它被设置为2,而不是我所期望的4。其他设置也是如此。当我打开标记文件时,我怀疑Vim也在读取我的html.Vim文件。这就是发生的事吗?如果是的话,有没有办法让Vim在打开.md文件时只读取markdown.Vim文件而忽略html.Vim文件?

是的,markdown文件类型插件脚本(
$VIMRUNTIME/ftplugin/markdown.Vim
)源于(有点“继承”)html文件类型,大概是因为markdown允许内联html


为了自定义缩进设置等内容,请将命令放入after目录;i、 e.
~/.vim/after/ftplugin/markdown.vim
。正如后面在
'runtimepath'
中所述,它们是最后读取的,因此可以覆盖默认设置。

您应该将
markdown.vim
放在
~/.vim/after/ftplugin
下,而不是
~/.vim/ftplugin
下。要检查上次设置的
sw
位置,可以执行
:详细设置sw
。阅读
:help ftplugin
可能有助于解决问题谢谢@Sergio。这似乎解决了问题。如果你想把你的评论改成一个答案,我很乐意给你评分。