在 .vim 和 .vimrc 中组织文件类型设置的最佳方法?

发布于 2024-09-02 18:09:30 字数 1100 浏览 6 评论 0 原文

我正在检查我的 vim 点文件来整理它们。我注意到,随着时间的推移,我以各种不一致的方式添加了各种文件类型特定的设置。假设我正在针对 Python 进行自定义:

  • au BufRead,BufNewFile *.py (do some)。我不喜欢这样,因为某些 Python 文件可能没有 .py 终止符。

  • au FileType python(做某事)。这似乎是一个更好的选择,因为它不依赖于具有 .py 终止的文件。缺点是 Vim 不知道某些文件类型。我可以让 Vim 识别其他文件类型,但我也有各种不一致的方法:一个 .vim/filetype.vim 文件,另一个 .vim/after/filetype.vim 文件code> 和 .vimrc 中的各种 set filetype 命令。

  • 添加具有文件类型特定设置的 .vim/ftplugin/python.vim 文件。我知道 $VIMRUNTIME/ftplugin/python.vim 可以覆盖我在这里所做的任何设置。一个问题是我不确定它如何与 .vim/filetype.vim.vim/after/filetype.vim 交互。

  • 添加.vim/after/ftplugin/python.vim。我知道这是在 $VIMRUNTIME/ftplugin/python.vim 之后加载的,因此它可以覆盖那里的设置。与前面的方法一样,我不确定它如何与 filetype.vim 文件交互。

所以我至少有四种方法可以做到这一点,更不用说语法文件和特定于文件类型的插件了。在我看来,最好的方法是将我的文件类型特定设置放在 after/ftplugin 中,这样它们就不会被覆盖,并将 filetypes.vim 放在 >之后出于同样的原因。

但是,在继续之前,我想询问是否有人对处理文件类型特定设置的最佳方法有建议。

I'm going through my vim dotfiles to tidy them up. I've noticed that through time I've added various filetype specific settings in various inconsistent ways. Let's suppose I'm customizing for Python:

  • au BufRead,BufNewFile *.py (do something). I don't like this because some Python files might not have the .py termination.

  • au FileType python (do something). This seems a better option because it doesn't depend on the file having the .py termination. The drawback is that Vim doesn't know about some filetypes. I can make Vim recognize additional filetypes, but I also have various inconsistent ways of doing it: a .vim/filetype.vim file, another in .vim/after/filetype.vim and various set filetype commands in .vimrc.

  • Add a .vim/ftplugin/python.vim file with filetype specific settings. I understand the $VIMRUNTIME/ftplugin/python.vim can override whatever settings I make here. One problem is that I'm not sure how this interacts with .vim/filetype.vim and .vim/after/filetype.vim.

  • Add a .vim/after/ftplugin/python.vim. I understand that this is loaded after $VIMRUNTIME/ftplugin/python.vim so it can overwrite settings from there. As in the previous method I'm not sure how it interacts with the filetype.vim files.

So I have at least four ways of doing this, not mentioning syntax files and filetype-specific plugins. It seems to me the best way to do this is to put my filetype specific settings in after/ftplugin so they don't get overwritten, and filetypes.vim in after for the same reason.

However, before I proceed I'd like to ask if anyone has suggestions about the best way to deal with filetype specific settings.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

数理化全能战士 2024-09-09 18:09:30

我将特定于 Python 的设置存储在 $HOME 中/.vim/ftplugin/python.vim,因为我没有做任何与 $VIMRUNTIME/ftplugin/python.vim

将这些设置保存在 ftplugin 文件中会保留 我的 .vimrc 漂亮且通用且易于维护(使用 Vim 十多年后,它仍然相当大)。

如果您想否决ftplugin如果你设置了 Vim 发行版,那么 $HOME/.vim/after/ftplugin/python.vim 就是你想要的,因为它的读法是 after< /em>这些。

类似地, $HOME/.vim/filetype.vim 将在 $VIMRUNTIME/filetype.vim 之前获取,而后者又会在 $HOME/.vim 之前获取/after/filetype.vim

调用 :scriptnames 将列出所有源脚本名称,按照最初来源的顺序排列。

:help filetype 提供了有关所有文件类型的相当全面的信息这。

I store my Python-specific settings is in $HOME/.vim/ftplugin/python.vim, since I do nothing to conflict with $VIMRUNTIME/ftplugin/python.vim.

Keeping these settings in an ftplugin file keeps my .vimrc nice and generic and easier to maintain (it's still pretty big after over ten years of Vim usage).

If you want to overrule what the ftplugins with your Vim distribution set up, then $HOME/.vim/after/ftplugin/python.vim is what you want, as it is read after these.

Similarly $HOME/.vim/filetype.vim will be sourced before $VIMRUNTIME/filetype.vim and that in turn will be sourced before $HOME/.vim/after/filetype.vim.

Invoking :scriptnames will list all sourced script names, in the order they were first sourced.

:help filetype provides pretty comprehensive information on all of this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文