2010-11-27 4 views
12

Je viens d'installer Vim et chaque fois que je vais ouvrir dans le fichier ruby ​​je reçois ces erreurs:Problème avec le plug-in Ruby Vim

Error detected while processing C:\Program files (x86)\Vim\vimfiles\ftplugin\ruby.vim 
line: 76 
Encoding::ConverterNotFoundError: code converter not found (UTF-16LE to ASCII-8bit) 
line: 93 

E121 :Undefined varaible: s:ruby_path 
E15: Invalid expression: s:ruby_path 
line: 76 

NameError: uninitialized constant Gem::Quickloader 
line: 93 

je Ruby 192 installé et je reçois cette erreur même si je mets à jour ruby fichiers vim.

Ce sont les deux lignes ces erreurs se réfèrent à s'il aide:

line 76: ruby VIM::command('let s:ruby_path = "%s"' % ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,})) 

line 93: let &l:path = s:ruby_path 

Répondre

0

Comment avez-vous installé Ruby?

Allez dans irb et entrez:

Gem.all_load_paths.uniq 

qui doit retourner une liste de chemins à vos installer des pierres précieuses que Gem a connaissance aussi.

C'est ce qui échoue dans votre message d'erreur et me conduit à suspecter qu'il vous manque des informations de chemin ou d'environnement, car il semble que vim ne trouve pas correctement vos gemmes Ruby.

Encoding::ConverterNotFoundError est une exception de bibliothèque de base, de sorte que la partie fonctionne, mais il semble que la commande Gem ne fonctionne pas.

+0

Je tape cela et tout un tas de fichiers différents est venu. Je pourrais les coller si cela peut aider. Quelles informations sur l'environnement pourraient-elles manquer? J'ai vérifié et j'ai le chemin de rubis là-bas. De plus, vim fait toujours la syntaxe et la mise en retrait appropriées, mais je reçois ce message chaque fois que j'ouvre un fichier et que j'obtiens aussi des messages d'erreur si j'essaie d'utiliser la saisie semi-automatique de Vim sur les fichiers vim. – Alex

+0

On dirait que Gem est ok alors. Si la saisie semi-automatique de Vim agit, alors je suppose que ce n'est pas du tout lié à Ruby, et le message que vous avez reçu est un faux-fuyant, en ce sens qu'il détourne l'attention du vrai problème. Si vous avez une application client IRC, vous pouvez aller sur le canal #vim à irc.freenode.net. Ils sont très actifs et devraient être en mesure de vous aider à le comprendre rapidement. –

+0

OK, je vais essayer ça. Merci – Alex

0

Votre problème est probablement Ruby 1.9 - AFAIK Vim ne fonctionne qu'avec Ruby 1.8, vous devrez peut-être rétrograder votre version Ruby pour que Vim fonctionne.

+0

Vim 7.3 a été créé avec ruby ​​191. J'ai ruby ​​192 installé mais j'ai toujours le fichier que le fichier exe de Vim appelle, qui est "msvcrt-ruby191.dll". Alors, est-ce le plugin préinstallé avec vim qui ne fonctionne pas ou vim lui-même? – Alex

0

J'ai ouvert le fichier "C: ... \ vim73 \ ftplugin \ ruby.vim" et juste avant la ligne 73 ou alors, où le code est ainsi libellé:

if !exists("s:ruby_path") 

J'ai ajouté:

let s:ruby_path = 'C:\ruby192\bin' 

Jusqu'à présent, vim semble plus heureux d'éditer des fichiers ruby. Note J'ai installé mon ruby ​​dans le répertoire "C:" au lieu de "Program Files" pour obtenir un meilleur chemin vers ruby.exe.

Ma version de ruby.vim est daté 2010 Mar 15.

15

Notez que la place du fichier ruby.vim d'édition vous pouvez simplement ajouter

let g:ruby_path = ':C:\ruby192\bin' 

dans votre fichier _vimrc (ou équivalent pour votre plate-forme). De cette façon, vous n'aurez pas besoin de ré-éditer ruby.vim lorsque vous le mettrez à jour.

+0

Une idée de ce que VIM utilise pour cela? Je passe de 1.8.7 à 1.9.3 et c'est pourquoi je suis intéressé. – Jason

0

La mise à jour de la dernière version de Ruby 1.9.2 (1.9.2p180 (2011-02-18) au moment de l'affichage) a corrigé ce problème pour moi. Je fonctionnais 1.9.2p132 ou alors quand j'ai eu le problème, qui semble avoir été patched around Dec 2010 Vous pouvez vérifier votre version actuelle en exécutant ruby -v.

5

Si vous exécutez RVM et que vous voulez le rubis par défaut, utilisez:

let g:ruby_path = "/Users/allen/.rvm/rubies/default/bin" 

Si vous définissez votre interpréteur ruby ​​dans votre fichier de projet .rvmrc, vous pouvez créer une variable d'environnement dans votre.rvmrc:

rvm [email protected] --create 
export RUBY_BIN=`which ruby | sed 's/ruby$//'` 

Vous pouvez utiliser des variables d'environnement dans votre .vimrc:

let g:ruby_path=$RUBY_BIN 

(Notez que vous devrait également définir une valeur par défaut de RUBY_BIN $ dans votre .bashrc ou .zshrc si cela fonctionne en dehors de .rvmrc projets.)

Si votre chemin ~/.rvm/rubies/default/bin n'existe pas encore, vous devez définir votre système rvm par défaut de ruby. À l'invite de commande ou à l'application du terminal, entrez:

rvm use 1.9.2 --default 

en utilisant la version de ruby ​​dont vous avez besoin.