我已经设置vundle来处理MacVim中的包。它正确设置了我所有其他文件的文件类型,例如ruby,perl等。
但是,当我打开.clj文件时,它没有设置文件类型。当我运行:set filetype?
时,它返回空。所以,vim无法识别clojure文件。我可以:set filetype=clojure
并立即获得代码完成和语法突出显示;所以我知道VimClojure工作正常。
“调试”这个或找出问题所在的最佳方法是什么?
谢谢!
更新
我已经拥有filetype plugin indent on
,它正在为vundle管理的其他软件包(vim-ruby,vim-rails等)工作。不是VimClojure。
答案 0 :(得分:4)
要启用加载文件类型插件,您可能需要在.vimrc
中添加此插件:
filetype plugin on
答案 1 :(得分:3)
确保在 vimrc中的其他配置之前初始化Vundle和捆绑包。所以,例如,您应该:
" =======================================================================
" Vundle setup and initialization. This needs to be done before any
" configuration so all plugins are loaded.
set nocompatible " required for Vundle
filetype off " required for Vundle, enabled later.
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Bundle 'gmarik/vundle'
" Powerline
Bundle 'Lokaltog/vim-powerline'
...
......其中Powerline只是一个示例包。然后剩下的配置......
" =======================================================================
" Actual vim configuration goes here.
" =======================================================================
syntax on "lots of syntax highlighting
set nocompatible "be iMproved
colorscheme mustang
filetype plugin indent on
...
希望有帮助...
答案 2 :(得分:0)
VimClojure安装文件ftdetect/clojure.vim
。我怀疑,这是Vim没有接受到的。不知道vundle所以我无法帮助。如果vundle需要在.vimrc
中进行一些初始化,你应该检查它是否在文件类型之前发生。
答案 3 :(得分:0)
我有同样的problem on Ubuntu。这是由系统级vim设置引起的。
您可以使用:scriptnames
应用哪些系统级vim设置。如果在vim中运行redir @c | scriptnames | redir END | enew | put c
,您将获得一个包含vim所有脚本的缓冲区。如果忽略所有文件(:g/\~/d
),则可以看到所有系统级脚本。
我的问题出现在第一个文件中:/usr/share/vim/vimrc
" Vim5 and later versions support syntax highlighting. Uncommenting the next
" line enables syntax highlighting by default.
if has("syntax")
syntax on
endif
因为syntax on
出现在pathogen(我的vim插件管理器)之前,所以vim永远不会在bundle / vimclojure / ftdetect目录中查找。我认为vundle会给你带来同样的问题。 (尝试将ftdetect / clojure.vim复制到〜/ .vim / ftdetect / clojure.vim中,看看是否还有问题。)
如果您遇到同样的问题,您有三种可能的解决方案:
filetype off
(您可能还需要syntax off
)。病原体使用病原体#infect()来做到这一点,也许vundle有类似的东西。 (相应的病原体bug和fix。)确保在之后重新开启它们! (另外,请确保您的vundle设置在vimrc中与filetype / plugin / syntax相关的任何其他内容之前。)答案 4 :(得分:0)
确保您的文件扩展名为 .clj ,而不是.clojure和.cloj