2

我正在尝试使用Pathogen来管理 Vim 插件。我有几个我用.vim/ftplugins.

我安装了 Pathogen,但现在 ftplugins 中的脚本都没有运行。

我尝试.vim/bundle在脚本中添加一个目录,但它不起作用(它是.vim/bundle/local/ftplugin/python.vim

知道如何让 Pathogen 加载 ftplugin 目录中的脚本吗?

我的第一行.vimrc

set nocompatible
syntax on
filetype plugin indent on
"execute pathogen#infect()

仅适用于注释掉的那一行。

gvim从 Bash 提示符运行,文件名作为第一个参数,如下所示:

$ gvim some/path/somefile.py

我希望看到该文件具有我在 ~/.vim/ftplugin/python.vim 中定义的 Python 文件的预定义颜色方案以及该脚本中定义的所有其他设置。

~/.vim/bundle 目录是空的。

病原体在 ~/.vim/autoload 中,没有更多内容。

$ ls ~/.vim/ftplugin/
css.vim  html.vim  javascript.vim  python_pep8.vim  python_pyflakes.vim  python.vim  rst.vim  xml.vim

$ ls ~/.vim
autoload  bundle  colors  doc  ftdetect  ftplugin  plugins  ScrollColor.vim  spell  syntax
4

3 回答 3

2

这是文件类型检测的问题,这是病原体问题

在我的情况下,解决方法很简单,使用它来启用 Pathogen:

set nocompatible
"execute pathogen#infect()    " breaks filetype detection
call pathogen#runtime_append_all_bundles()

filetype plugin indent on
syntax on

我所做的是删除我的 ~/.vim 目录并从一个干净的目录开始。一件一件地添加东西并检查结果。我意识到它没有检测到正确的文件类型(当我打开一个空文件时检测是好的,但在打开现有文件时却不是)。

于 2013-01-11T15:43:40.860 回答
1

在这里发表我的评论:

想知道如果你在 之后放置:filetype:syntax调用它是否有效:execute?官方README建议在第二部分这样做:第一:execute,第二:syntax,第三:filetype。注意:不要在@Eduan 建议之前禁用:execute文件类型,只是在调用之前不要启用它:execute

set nocompatible
execute pathogen#infect()
syntax on
filetype plugin indent on

而且,顺便说一句,永远不要使用*map.

于 2013-01-10T20:47:06.563 回答
0

为了示例代码的清晰性,我想我可以看到您的问题,将其放在答案而不是评论中。

试试这个:

" Set the filetype stuff to off, required for Pathogen
filetype off
filetype plugin indent off

execute pathogen#infect()

" You can now turn it on again
filetype on
filetype plugin indent on

而不是您当前的设置。

于 2013-01-10T19:39:46.233 回答