gpt4 book ai didi

vim - 如何组织具有独特语法元素的 vim 插件?

转载 作者:行者123 更新时间:2023-12-04 04:53:38 25 4
gpt4 key购买 nike

我为自己编写了一个(基本的)vim 插件,但我很难组织它。现在,它存在于两个文件中:一个在 syntax/ 中。和一个在 ftplugin/ (两者都在 bundle/<plugin name> 中。我希望插件对各种文件类型有效, 包括那些具有现有语法文件的文件

到目前为止,正在做类似 :set ft=<existing filetype>.<new filetype> 的事情在每个文件中都有效,但我无法弄清楚如何(始终如一)从我的 .vimrc 中执行此操作。

所以,两个问题:

  • 我有正确的组织方法吗?有没有更简单的方法来(比如)组合语法和插件文件?
  • 如果是这样,附加我的自定义的“正确”方式是什么 filetype ?
  • 最佳答案

    虽然您没有包含很多细节,但您是对的 syntax/包含语法定义(即主要是 :syntax 命令)和 ftplugin/用于特定于文件类型的设置(即主要是 :setlocal:map <buffer> 等)。

    I would like the plugin to be active for various file types, including those with existing syntax files.



    正确的方法很大程度上取决于原始语法和您的语法之间的关系。很难扩展任意语法,因为您必须考虑重叠并使用适当的 containedin=...语法扩展中的说明符。

    复合文件类型 :setl filetype=c.doxygen自动检测或手动设置时效果很好。如果您不希望扩展名如此明显(并且某些插件不能很好地处理复合文件类型),您可以选择 :runtime syntax/mine.vim总而言之 ~/.vim/after/syntax/original.vim文件(对 ftplugin/ 做同样的事情)。

    另一种选择是 Hook :autocmd Syntax ...:autocmd FileType ... ;这避免了编写许多仅 :runtime 的短 stub 文件。您的语法/ftplugin 添加。

    关于vim - 如何组织具有独特语法元素的 vim 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17066460/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com