gpt4 book ai didi

vim - 基于文件类型执行 vim 命令?

转载 作者:行者123 更新时间:2023-12-04 18:33:41 27 4
gpt4 key购买 nike

我正在尝试让命令

    let b:match_words='<:>,<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'

每次打开 html 文件时运行。我试着放线

    autocmd FileType html let b:match_words='<:>,<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'

在我的 ftdetect 和 ftplugin 文件夹中名为 html.vim 的文件中,没有任何反应。每次我在 html 文件中时,如何让命令运行?

该命令是改变matchit btw的匹配行为。

最佳答案

总的来说,你的autocmd没问题;问题是您正在尝试重新定义在 $VIMRUNTIME/ftplugin/html.vim 中完成的 b:match_words 定义,因此执行顺序变得很重要。

这些定制的地方在 after 目录中,即 ~/.vim/after/ftplugin/html.vim;只需创建一个新文件并将 :let 命令放入其中即可。

您可以通过 :scriptnames 观察源脚本的顺序。在其他情况下,当您不覆盖默认行为时,:autocmd FileType 没问题,但我更喜欢将这些(例如自定义映射)放入 ~/.vim/ftplugin/html_mymappings。 vim,因为它提供了更好的分离并有助于使您的 .vimrc 简短易懂。

ftdetect 子目录用于文件类型检测,即检查文件路径/名称/内容以确定正确的文件类型。它不适用于此处,因为文件类型是 html

关于vim - 基于文件类型执行 vim 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12449688/

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