2010-06-17 10 views
6

Ich versuche, zu GVim (Creme) als mein primärer Editor auf Ubuntu zu bewegen. Ich benutze das wunderbare rails.vim, aber ich benutze auch RVM.Verwendung von RVM mit GVim (Cream): rvm Befehl nicht gefunden

Rvm funktioniert gut, wenn man Dinge in einer Shell macht, und die Ruby-Version, die ich in rails.vim verwenden möchte, ist die als Standard eingestellte Version (aber nicht die Systemversion).

Wenn ich versuche, die Dinge zu laufen wie

:Rgenerate migration migration_name 

ich:

... 
Missing Rails 2.3.8 gem. 
... 

Wenn ich versuche:

:!rvm use default 

ich:

/bin/bash: rvm: command not found 

Offensichtlich verwendet cream/gvim meine .bashrc nicht. Was kann ich tun, um dies zu beheben und es zum Laufen zu bringen? Vielen Dank.

+1

Gleiches Problem auch in gvim und tritt nur auf, wenn ich das Anwendungsmenü/Gnome Do verwende, um die Anwendung zu starten. Wenn gvim von der Shell starten dann funktioniert rvm gut. –

Antwort

4

Versuchen Sie Cream über die Befehlszeile auszuführen, wenn dies das Problem löst, können Sie Ihren Menüeintrag auf ein Skript richten, das Cream im Kontext einer Bash-Eingabeaufforderung öffnet.

+0

Das klingt am vielversprechendsten. Irgendwelche Vorschläge, wie man das macht? Es würde mich freuen, wenn ich auf die richtigen Suchbegriffe hinwiese, damit ich mich selbst lernen kann. –

+0

Versuchen Sie, eine Datei zu schreiben, die 'cream &' enthält und speichern Sie als 'whatever.sh', und versuchen Sie dann, das Skript auszuführen. – thomasfedb

1

Sie haben wahrscheinlich .bash_profile verwendet, um RVM-Dateien zu Ihrer Bash-Umgebung hinzuzufügen. Leider wird ~/.bash_profile normalerweise nicht von X-Startscripts gelesen, wie in Ubuntu Help

Verwenden Sie .profile oder .bashrc. Die .profile wird nur von bash bezogen, wenn .bash_profile nicht vorhanden ist. Ich würde .bashrc verwenden.

+0

Oh, und vergessen Sie nicht, die X-Sitzung neu zu starten, nachdem Sie Änderungen vorgenommen haben. – fungusakafungus

+0

Danke. Allerdings habe ich bereits .bashrc verwendet, um rvm hinzuzufügen. Ich habe mich geirrt, als ich oben Bash-Profil sagte. –

+0

Danke, das hat super funktioniert. Ich bin auf einer sauberen Installation und habe diese Dateien noch nicht berührt, also nehme ich an, dass RVM standardmäßig die RVM-Skriptzeile zu meinem .bash_profile installiert hat. Das Kopieren dieser Zeile in die .bashrc-Datei wurde beim nächsten Start einer neuen Bash-Shell korrigiert. –

0

rvm ist eine Bash-Funktion, die die Bash-Umgebung ändert. Scheint so, als ob es nicht von innen heraus laufen sollte. Sie können die Umgebung eines bereits laufenden Programms nicht ändern.

+0

Okay, so sollte es sein Was ich tun muss, ist es aus dem richtigen Bash Profil zu starten, vielleicht wie ThomasFedb suggeriert. –

0

Versuchen Sie rvm gem list, um sicherzustellen, dass die Schienen Juwel tatsächlich installiert ist. rails (2.3.8) sollte aufgelistet werden. Wenn es nicht ausgeführt wird rvm gem install rails.

Ich bin ein vim Benutzer, und rvm + rails.vim funktioniert gut für mich. Einschließlich Ihres :Rgenerate Beispiels.

+0

RVM ist installiert, gvim lädt gerade nicht den Umfang des Bash-Profils. –

0

rvm wird pro Schale Basis festgelegt, so dass, wenn Sie ein neues Fenster oder einen neuen Tab starten und Sie verwenden etwas anderes als Ihr Standard-Interpreter und gemset müssen Sie zuerst

rvm gemset use my_rails238_gemset

und dann

vim myshiz

+0

Das ist ziemlich genau das, was ich gemacht habe.Der Start von gvim vom Terminal führt zum gewünschten Verhalten. –

3

Dies liegt daran, dass Sie die rvm Skripten in der .zshrc Datei Sourcing sind. MacVim bezieht die .zshrc-Datei nicht, sondern die .zshenv-Datei.

Fügen Sie Ihrer .vimrc-Datei die folgende Zeile hinzu.

set shell=/bin/sh 
+0

Ich habe das gemacht und es hat für mich funktioniert. Vielen Dank! – Alban

+0

NB dies ist eine Antwort auf ein Mac-spezifisches Problem, und der Fragesteller verwendet Ubuntu – Lambart

0

Fügen Sie diese Zeile Ihrem ~/hinzu.bashrc:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 

Und stellen Sie sicher, es kommt vor [ -z "$PS1" ] && return, die den Rest der Datei nicht mehr Sourcing wenn bash nicht interaktiv ist.

Und dann fügen Sie diese zu Ihrer ~/.profile:

export BASH_ENV=$HOME/.bashrc 

Mit dieser Linie bash wird jetzt Quelle $ HOME/.bashrc, wenn es zu nicht-interaktiv ausgeführt wird. Sowohl GVim- als auch Shell-Skripte, die Sie durch Doppelklicken ausführen, sollten nun RVM verwenden.

Hinweis: Nur :! (ex: :!ruby, :!echo) Befehle RVM als Befehle verwenden wie :ruby und :echo nicht bash laufen und daher nicht source ~/.bashrc.

0

Das Ausführen von gvim von der Befehlszeile funktioniert nicht für mich (in dem Sinne, dass es nicht akzeptabel ist). Wenn ich eine GUI-Anwendung verwende, möchte ich sie wie eine GUI verwenden, ohne dass eine nutzlose Shell im Hintergrund verbleibt.

Der 'set shell=' Trick, der für Mac-Benutzer funktioniert, funktioniert nicht für mich. Wie du, benutze ich Ubuntu. Selbst das Setzen der Shell auf /bin/bash tut es nicht.

Das einzige, was ich zur Arbeit bekommen habe, ist dies. Installieren Sie zuerst rvm.vim zusätzlich zu rails.vim.

Dann, wenn Sie öffnen Gvim/Creme, navigieren Sie zu Ihrem Projektstammordner eingeben

:Rvm 

Diese rvm.vim verursacht Ihre .ruby-version (oder .rvmrc-Datei) und initialisieren sich richtig zu lesen.

An diesem Punkt

:Rake 
:Rgenerate 

... und andere rails.vim Befehle sollte gut funktionieren.

Beachten Sie, dass Sie Argumente auch an :Rvm übergeben können, genauso wie bei der Ausführung von rvm aus der Shell.

+0

Ich benutze auch GVim auf Ubuntu und _rvm.vim_ Plugin war nur eine Möglichkeit, _rails.vim_ arbeiten zu bekommen. Ein Tipp: Setzen Sie ': autocmd VimEnter * Rvm' in Ihre .vimrc, damit Sie nicht ruf: Rvm die ganze Zeit manuell – remo