Kürzlich habe ich gesehen, wie Gary Bernhardt eine vim Abkürzung zeigt, mit der er Ruby-Code innerhalb von vim ausführt. Die Verknüpfung ist
%Vor%Es scheint, dass diese Methode immer das System Ruby ausführt, was in meinem Fall 1.8.7 ist. Ich zögere, dies zu aktualisieren, da ich gehört habe, dass das Ändern des System-Ruby-Interpreters einige wackelige Probleme verursachen kann. Gibt es trotzdem diesen Befehl, um das Versions-Setup für das Verzeichnis mit RVM zu verwenden?
Der direkteste Weg, um ruby
anzugeben, besteht darin, den vollständigen Pfadnamen im Befehl :!
anzugeben (anstatt sich auf den zuerst gefundenen ruby
in den PATH-Verzeichnissen zu verlassen):
Um den Ruby bei /path/to/your/preferred/ruby
zu verwenden:
Um RVM-installiertes ruby-1.9.2-head
zu verwenden:
Um RVM-installiertes ruby-1.9.2-head
mit Ihrem rails3-dev
gemset zu verwenden:
Der Map-Befehl könnte also so enden:
%Vor% Es ist auch normalerweise möglich, den effektiven Wert der PATH-Umgebungsvariablen so anzupassen, dass die von Ihnen gewünschte ruby
zuerst gefunden wird, aber nicht immer so einfach wie gewünscht. Insbesondere werden die :!
-Befehle von der Shell verarbeitet, die durch die Shell Vim-Option konfiguriert wurde ( :set shell?
, um ihren Wert zu sehen). Die Konfigurationsdateien für diese Shell können den PATH-Wert ändern, den Vim der Shell gibt (vergleiche Vims PATH ( :echo $PATH
) mit dem PATH, den :!
-Befehle verwenden ( :!echo $PATH
), um zu sehen, ob die Konfigurationsdateien Ihrer Shell sein könnten Anpassen des PATH).
Sie könnten versuchen, den PATH zu ändern, den Vim und seine Kinder so verwenden:
%Vor% Sie sollten den effektiven PATH mit :!echo $PATH
und :!which ruby
überprüfen, um herauszufinden, ob Ihre Shell den PATH weiter modifiziert (vielleicht :set shell=/bin/sh
, wenn Sie dieses Problem haben).
Hinweis: Ich habe diese spezielle Verwendung der Wrapper-Verzeichnisse von RVM noch nie gesehen, zukünftige Versionen von RVM könnten es brechen. Die normale Verwendung besteht darin, einen Wrapper zu erstellen und ihn direkt aus ~/.rvm/bin
(ähnlich wie im ersten Teil dieses Posts) aufzurufen, anstatt ~/.rvm/wrapper/whatever
in den PATH zu setzen.