Вы должны проверить, как это делается в rails.vim, подключаемом модуле Rails от Тима Поупа, который работает туда.
Если вы редактируете *.rb (файл Ruby) из проекта Rails, вы включаете определенную конфигурацию Rails. Но не в том случае, если вы редактируете ruby-файл, отличный от Rails.
Вы должны проверить исходный код самостоятельно, но точка входа для обнаружения ниже:
augroup railsPluginDetect
autocmd!
autocmd BufNewFile,BufRead * call s:Detect(expand("<afile>:p"))
autocmd VimEnter * if expand("<amatch>") == "" && !exists("b:rails_root") | call s:Detect(getcwd()) | endif | if exists("b:rails_root") | silent doau User BufEnterRails | endif
autocmd FileType netrw if !exists("b:rails_root") | call s:Detect(expand("<afile>:p")) | endif | if exists("b:rails_root") | silent doau User BufEnterRails | endif
autocmd BufEnter * if exists("b:rails_root")|silent doau User BufEnterRails|endif
autocmd BufLeave * if exists("b:rails_root")|silent doau User BufLeaveRails|endif
autocmd Syntax railslog if s:autoload()|call rails#log_syntax()|endif
augroup END
По сути, s:Detect
находит корень проекта Rails и проверяет, существует ли ./config/environment.rb
, и если это так, он создает событие BufEnterRails
с silent doau User BufEnterRails
, и есть еще одна автокоманда на случай, если произойдет BufEnterRails.
Вы должны следовать тому же пути для вашего плагина. При открытии буфера вы должны попытаться найти определенный файл или каталог Django в пути к файлу html, который вы редактируете, а затем решить, находитесь ли вы в проекте Django или нет.
Поскольку я не знаю Django, я не могу сказать, какой файл искать, но, вероятно, есть файл конфигурации проекта, общий для каждого проекта Django.
person
Xavier T.
schedule
22.02.2011