Vim:如何为特定文件类型安装插件?

Vim:如何为特定文件类型安装插件?

昨天我偶然发现了绝地力量为 Python 提供自动完成功能的插件。我使用致病菌将该插件放在bundle目录中进行安装,并且运行良好。

现在,正如我所提到的,这个插件仅用于filetype: python所以我只想在打开带有.py扩展名的文件时加载它,而不是在打开其他文件时加载它.java, .perl, .sh

那么,如何才能实现这一点呢?

我是 vim 初学者/菜鸟,但在询问之前我用谷歌搜索过,发现可以使用来实现这一点vim ftplugin,但我完全不知道将哪个文件放在哪里。

答案1

Vim 有插件管理器可以做到这一点

例如vim 插件

Plug 'davidhalter/jedi-vim', {'for': 'python'}

其中字符串是 github 存储库的作者/名称。vim.org 中的所有脚本也通过以下方式重新托管在 github 上vim-scripts.org在用户下vim 脚本

答案2

当我想要有条件地加载jedi-vim和使用插件管理器时,我遇到了同样的问题Vundle。现在,经过一番研究,我发现它Vundle会在运行时加载其所有包/插件,而我对此无能为力。

但是,jedi-vim可能会自动加载,也可能不自动加载。所以我决定将文件中的jedi-vim选项设置为 1,并将其设置为 0(不自动加载)。~/.vimrc~/.vim/ftplugin/python.vim

该选项是:

" supposing this is the .vim/ftplugin/python.vim file let g:jedi#auto_initialization = 1

答案3

尤其是对于复杂的插件,插件必须以最小化其对其他文件类型的影响的方式编写。你没有说明为什么要将插件的应用限制在 Python 文件中(只要它不安装干扰其他映射的全局映射,你通常不会在意),但在找到一个关于加载时间缓慢的问题,我怀疑是那样。

在插件作者提供修复之前,您可以尝试将plugin/jedi.vim文件(以及相应的jedi_vim.py)上移一个目录,这样 Vim 启动时就不会自动获取它。当您想要使用该插件时,请通过加载它:runtime jedi.vim。也许您甚至可以将文件移动到ftplugin/文件夹中;然后当编辑 Python 文件时,它们就会被自动获取;试试看。

或者,你可以完全分离.vimPython 和其他开发的目录,并使用两个不同的别名来启动vim-with-python与普通的 vim:

alias vim-with-python='vim --cmd "set rtp^=~/.vim-with-python" --cmd "set rtp+=~/.vim-with-python/after"'

相关内容