我正在尝试使用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()
只能使用该行注释掉。
我从Bash提示符运行gvim
,文件名为第一个参数,如下所示:
$ gvim some/path/somefile.py
我希望在〜/ .vim / ftplugin / python.vim中定义的Python文件的预定义colorscheme以及该脚本中定义的所有其他设置中看到该文件。
〜/ .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
答案 0 :(得分:2)
这是文件类型检测的问题,这是Pathogen issue。
我的案例很简单,使用它来启用病原体:
set nocompatible
"execute pathogen#infect() " breaks filetype detection
call pathogen#runtime_append_all_bundles()
filetype plugin indent on
syntax on
我所做的是删除我的〜/ .vim目录并从一个干净的目录开始。逐个添加内容并检查结果。我意识到它没有检测到正确的文件类型(当我打开空文件检测时没问题,但是在打开现有文件时却没有。)
答案 1 :(得分:1)
在此发表评论:
想知道在:filetype
之后放置:syntax
和:execute
来电是否有效?官方README
建议在第二部分中执行此操作:第一个:execute
,第二个:syntax
,第三个:filetype
。注意:请勿在@ {du}建议的:execute
之前禁用文件类型,只是在调用:execute
之前不要启用它:
set nocompatible
execute pathogen#infect()
syntax on
filetype plugin indent on
顺便说一句,never use *map
。
答案 2 :(得分: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
而不是您当前的设置。