2011-10-10 60 views
3

我已經安裝了vundle來處理MacVim中的包。它正確設置了我所有其他文件的文件類型,例如ruby,perl等。爲什麼VimClojure沒有將filetype設置爲「clojure」

但是,打開.clj文件時不會設置文件類型。當我運行:set filetype?時,它返回空。所以,vim不識別clojure文件。我可以:set filetype=clojure並立即獲得代碼完成和語法突出顯示;所以我知道VimClojure工作正常。

什麼是「調試」或找出問題出在哪裏的最佳方式?

  • 的MacVim 7.3版
  • OS X 10.6

謝謝!

UPDATE

我已經有filetype plugin indent on和它的工作對其他包(VIM-紅寶石,VIM護欄等)vundle是管理。只是不VimClojure。

+0

的哪個工作插件安裝新的後綴文件類型映射?我仍然不相信'filetype on'調用是按照Bundle定義的正確順序發生的。 (即在「Bundle」調用之後) – kotarak

回答

0

VimClojure安裝文件ftdetect/clojure.vim。我的懷疑是,這不是Vim拾起來的。不知道vundle,所以我無法幫助。如果vundle在.vimrc需要一些初始化,你應該檢查它發生在filetype的東西之前。

+0

是的,'ftdetect/clojure.vim'就在那裏。我已經正確地獲得了我的'vimrc'調用vundle,它正在爲其他vim包工作。 –

4

爲了使您可能需要在您的.vimrc添加此載入文件類型插件:

filetype plugin on

+0

我已經有'filetype plugin indent on',它可以用於vundle管理的其他包。只是不VimClojure。 –

+0

但是您是否在'.vimrc'中設置了'filetype plugin indent on',或者稍後通過某些腳本設置了它?如果沒有在'.vimrc'中設置,那麼可能是設置得太晚,然後嘗試將它放在.vimrc中。 –

+0

我有一個有趣的方式來爲'.vimrc'分隔我的dotfiles文件。你可以在這裏看看它們:https://github.com/bostonaholic/vim-config。基本上,'.vimrc'調用'runtime! common_config/*。vim *'在vim啓動時加載所有vim文件。在那裏,是的,我正在調用'filetype plugin indent on'。 –

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從不看在束/ vimclojure/ftdetect目錄。我認爲vundle會對你有同樣的問題。 (請嘗試複製ftdetect/clojure.vim到〜/ vim的/ ftdetect/clojure.vim,看看您是否仍然有問題)

如果你有同樣的問題,你有三個可能的解決方案:

  1. 註釋掉這些行,並向擁有有問題文件(Apple或MacVim)的任何人提出錯誤。我猜你的文件在MacVim包中,因爲我不記得MacVim正在做系統級的更改。
  2. 在初始化vundle之前添加filetype off(您也可能需要syntax off)。病原體使用病原體#感染()來做到這一點,也許vundle有類似的東西。 (相應的病原體bugfix。)請確保您將它們重新打開!(另外,請確保你的vundle安裝程序在vimrc中與filetype/plugin/syntax相關的其他任何東西之前出現)。
  3. 從ftdetect文件中爲所有軟件包創建符號鏈接到〜/ .vim/ftdetect(並且如果bug是固定的)。
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 
... 

希望幫助...

+0

太棒了,這對我來說很好。我希望vundle文檔更清楚這個主要問題。 – CornSmith

0

確保您的文件擴展名是.clj,不.clojure也不.cloj

相關問題