4

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

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

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

  • MacVim v7.3
  • 操作系统 X 10.6

谢谢!

更新

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

4

5 回答 5

5

为了启用加载文件类型插件,您可能需要在您的.vimrc

filetype plugin on

于 2011-10-10T07:56:54.427 回答
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
...

希望有帮助...

于 2013-03-26T23:53:20.453 回答
0

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

于 2014-01-06T19:21:58.243 回答
0

VimClojure 安装一个文件ftdetect/clojure.vim。我的怀疑是,这不是 Vim 接受的。不知道vundle,所以我无能为力。如果 vundle 需要在 中进行一些初始化.vimrc,您应该检查它是否在文件类型内容之前发生。

于 2011-10-10T06:44:05.320 回答
0

在 Ubuntu 上有同样的问题。这是由系统级 vim 设置引起的。

您可以使用:scriptnames. 如果你redir @c | scriptnames | redir END | enew | put c在 vim 内部运行,你会得到一个包含所有由 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(我的 vim 插件管理器)之前出现,所以 vim 从不查看 bundle/vimclojure/ftdetect 目录。我认为 vundle 会给你同样的问题。(尝试将 ftdetect/clojure.vim 复制到 ~/.vim/ftdetect/clojure.vim 中,看看是否还有问题。)

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

  1. 注释掉这些行并向拥有违规文件的人(Apple 或 MacVim)提交错误。我猜你的文件在 MacVim 包中,因为我不记得 MacVim 做过系统级的更改。
  2. filetype off在初始化 vundle 之前添加(您可能也需要syntax off)。Pathogen 使用 Pathogen#infect() 来做到这一点,也许 vundle 有类似的东西。(相应的病原体错误修复。)确保在之后重新打开它们!(另外,请确保您的 vundle 设置位于 vimrc 中与文件类型/插件/语法相关的任何其他内容之前。)
  3. 将所有捆绑包的 ftdetect 文件中的符号链接制作到 ~/.vim/ftdetect 中(如果错误已修复,则自动命令加倍)。
于 2012-08-22T14:42:13.610 回答