【问题标题】:Why does vim default markdown ftplugin source html ftplugins? Is there any ways to avoid it?为什么vim默认markdown ftplugin source html ftplugins?有什么办法可以避免吗?
【发布时间】:2014-04-03 13:28:40
【问题描述】:

一切都在标题中... 我做了一个 ftplugin 以使用浏览器实时预览 html 文件(也包括 php 和 css),但是现在,当我打开 markdown 文件时,浏览器也打开了……我明白了原因:默认 ftplugin/ 中有这一行markdown.vim:

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim

所以第一个问题,为什么markdown source html ftplugin?这对我来说似乎无关紧要,但也许我很高兴知道有充分的理由。

那么,有没有办法不为markdown文件获取html ftplugins?

【问题讨论】:

  • 我能想到加载 html 的唯一原因是如果您正在渲染预览......

标签: html vim markdown ftplugin


【解决方案1】:

Markdown 允许您使用内联 HTMLFrom the spec:

对于 Markdown 语法未涵盖的任何标记,您只需使用 HTML 本身。无需为它加上前缀或定界以表明您正在从 Markdown 切换到 HTML;你只需要使用标签。

这解释了文件类型插件的行为。

禁用此功能

最好禁用上述实时预览;因为这可能是由:autocmd BufWritePost <buffer> ... 触发的,所以您可以通过~/.vim/after/ftplugin/markdown.vim 中的类似内容禁用它:

:autocmd! BufWritePost <buffer>

要完全摆脱 HTML 内容,请将 $VIMRUNTIME/ftplugin/markdown.vim 复制到用户的 ~/.vim/ftplugin/markdown.vim,然后删除/注释掉 :runtime 命令。 b:did_ftplugin 检查将确保原始 ftplugin 尽管仍然有源,但什么都不做。

【讨论】:

  • 好的,我现在明白了 :) 我将提供一个黑名单来禁用某些 filtype 上的插件。谢谢!
  • 如果这是一个插件,用户可能还想禁用某些 HTML 缓冲区的实时预览。最灵活的解决方案是通过b:BrowserLivePreviewEnabled 缓冲区局部变量。您可以默认设置,但如果是0,请跳过预览。
  • 是的,已经处理好了:有激活和切换实时预览和预览的功能:插件见vim.org/scripts/script.php?script_id=4908。但我现在必须记录浏览器^^
【解决方案2】:

您可以在~/.vim/ftplugin/html.vim 的顶部添加此内容:

if &ft=="markdown"
  finish
endif

这将阻止 Markdown 文件处理 html 设置。

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 2014-05-25
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2010-10-16
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多