Значение опции Vim содержит сообщение об ошибке при редактировании файлов ruby, Gem.all_load_paths - PullRequest
1 голос
/ 06 января 2012

При редактировании ruby ​​некоторые файлы, но не все, искажаются при редактировании в vim.

Изучив параметры с помощью :set, я обнаружил, что для получения одного из значений параметров было сделано какое-то волшебствочто-то пошло не так с магией, и там должно быть сообщение об ошибке или предупреждение, где должно быть значение опции.Это может вызывать побочные эффекты.

Метод, выдающий ошибку: Gem.all_load_paths, и это происходит независимо от того, использую ли я ruby ​​1.8.7, 1.9.2, использую ли я rvm или system ruby.Использование Ubuntu 11.10

Я попытался установить для параметра omnifunc значение nil, но это не решает проблему;похоже, это другой вариант, производящий это значение.Плагины, которые я использую, можно увидеть ниже.

:set
--- Options ---
  autoindent          comments=:#         history=50          keywordprg=ri       scroll=29           suffixesadd=.rb     ttyfast
  backup              filetype=ruby       hlsearch            mouse=a             shiftwidth=2        syntax=ruby         ttymouse=xterm2
  backupdir=~/.tmp    helplang=en         incsearch           ruler               showcmd             tabstop=2
  backspace=indent,eol,start
  balloonexpr=RubyBalloonexpr()
  commentstring=# %s
  fileencodings=ucs-bom,utf-8,default,latin1
  formatoptions=croql
  include=^\s*\<\(load\|w*require\)\>
  includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.rb','')
  indentexpr=GetRubyIndent()
  indentkeys=0{,0},0),0],!^F,o,O,e,=end,=elsif,=when,=ensure,=rescue,==begin,==end
  omnifunc=rubycomplete#Complete                                                                                                                              f
rom ~/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/site_ruby/1.8/rubygems/deprecate.rb:62:in `all_load_paths'^@^Ifrom -e:1^@1.8/rubygems/deprecate.rb:62:in `send'^@^I
  printoptions=paper:letter                                                                                                                                   /
after,/var/lib/vim/addons/after,~/.vim/afterm,~/.vim/bundle/vim-rails,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim73,/usr/share/vim/vimfiles
  suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc

Ответы [ 2 ]

1 голос
/ 07 января 2013

Я немного собрал @pbyme и нашел новый способ сделать это.С моими текущими настройками он даже вытягивает некоторые локальные драгоценные камни, привнесенные компоновщиком.

Ключ заменяет all_load_paths на Specification.map(&:lib_dirs_glob)

MacVim.app/Contents/Resources/vim/runtime/ftplugin/ruby.vim

79c79
<     let s:code = "print ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,})"
---
>     let s:code = "print ($: + begin; require %q{rubygems}; Gem::Specification.map(&:lib_dirs_glob).sort.uniq;  rescue LoadError; []; end).join(%q{,})"
1 голос
/ 31 января 2012

Сегодня я получил то же самое после обновления с Snapshot 63 до Snapshot 64 MacVim. Это ужасный хак, но я нашел ошибочную строку (79) в MacVim.app/Contents/Resources/vim/runtime/ftplugin/ruby.vim и удалил ссылку на Gem.all_load_paths, которая устарела без замены.

Я опубликовал разницу в моей сути , которая заставляет меня двигаться дальше. На данный момент мне не ясно, следует ли сообщать об этой ошибке в MacVim или Vim.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...