Почему VimClojure не устанавливает тип файла в «clojure» - PullRequest
3 голосов
/ 10 октября 2011

У меня есть настройка vundle для обработки моих пакетов в MacVim. Он правильно устанавливает тип файла для всех других моих файлов, например, рубин, перл и т. д.

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

Какой лучший способ «отладить» это или выяснить, в чем проблема?

  • MacVim v7.3
  • OS X 10,6

Спасибо!

UPDATE

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

Ответы [ 5 ]

4 голосов
/ 10 октября 2011

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

filetype plugin on

3 голосов
/ 27 марта 2013

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

" =======================================================================
" 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 голосов
/ 06 января 2014

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

0 голосов
/ 22 августа 2012

У меня такая же проблема в 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если ошибка когда-либо исправлена).
0 голосов
/ 10 октября 2011

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

...