为什么VimClojure没有将文件类型设置为“clojure”

时间:2011-10-10 02:58:13

标签: vim clojure vimclojure

我已经设置vundle来处理MacVim中的包。它正确设置了我所有其他文件的文件类型,例如ruby,perl等。

但是,当我打开.clj文件时,它没有设置文件类型。当我运行:set filetype?时,它返回空。所以,vim无法识别clojure文件。我可以:set filetype=clojure并立即获得代码完成和语法突出显示;所以我知道VimClojure工作正常。

“调试”这个或找出问题所在的最佳方法是什么?

  • MacVim v7.3
  • OS X 10.6

谢谢!

更新

我已经拥有filetype plugin indent on,它正在为vundle管理的其他软件包(vim-ruby,vim-rails等)工作。不是VimClojure。

5 个答案:

答案 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中,看看是否还有问题。)

如果您遇到同样的问题,您有三种可能的解决方案:

  1. 注释掉这些行并向拥有违规文件(Apple或MacVim)的人提交错误。我猜你的文件在MacVim包中,因为我不记得MacVim正在进行系统级更改。
  2. 在初始化vundle之前添加filetype off(您可能还需要syntax off)。病原体使用病原体#infect()来做到这一点,也许vundle有类似的东西。 (相应的病原体bugfix。)确保在之后重新开启它们! (另外,请确保您的vundle设置在vimrc中与filetype / plugin / syntax相关的任何其他内容之前。)
  3. 将所有包的ftdetect文件中的符号链接添加到〜/ .vim / ftdetect(如果错误得到修复,则会增加一倍的autocmds。)

答案 4 :(得分:0)

确保您的文件扩展名为 .clj ,而不是.clojure和.cloj