Почему VimClojure не устанавливает тип файла "clojure"

Я настроил Vundle для обработки своих пакетов в MacVim. Он правильно устанавливает тип файла для всех других моих файлов, например, ruby, perl и т. Д.

Тем не менее, он не устанавливает тип файла, когда я открываю.clj файл. Когда я бегу :set filetype? он возвращается пустым. Итак, vim не распознает файлы clojure. Я могу :set filetype=clojure и сразу получить завершение кода и подсветку синтаксиса; так что я знаю, что VimClojure работает правильно.

Как лучше всего это "отладить" или узнать, в чем проблема?

  • MacVim v7.3
  • OS X 10.6

Спасибо!

ОБНОВИТЬ

у меня уже есть filetype plugin indent on и он работает для других пакетов (vim-ruby, vim-rails и т. д.), которыми управляет vundle. Просто не VimClojure.

5 ответов

Чтобы разрешить загрузку плагинов файловых типов, вам может понадобиться добавить это в свой .vimrc:

filetype plugin on

Убедитесь, что вы инициализируете Vundle и ваши пакеты до остальной конфигурации в вашем vimr c. Так, например, вы должны иметь:

" =======================================================================
" 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
...

Надеюсь, это поможет...

Убедитесь, что ваше расширение файла .clj, а не.clojure или.cloj

VimClojure устанавливает файл ftdetect/clojure.vim, Я подозреваю, что это не подхватил Вим. Не знаю, где я, и я ничего не могу с этим поделать. Если vundle нуждается в некоторой инициализации в .vimrc, вы должны проверить, что это происходит, перед тем, как напечатать тип файла.

У меня такая же проблема на Ubuntu. Это вызвано настройками vim системного уровня.

Вы можете с какими настройками 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 появляется перед настройкой pathogen (мой менеджер плагинов 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, относящееся к filetype/plugin/syntax.)
  3. Создайте символические ссылки из файлов ftdetect для всех пакетов в ~/.vim/ftdetect (и удвоите autocmds, если ошибка когда-либо будет исправлена).
Другие вопросы по тегам