PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : vim+ruby



darkmind
17.01.05, 20:10
n'abend!

wie kann ich ein im vim geöffnetes ruby-programm direkt ausführen lassen?
die suchfunktion hat mir nicht weitergeholfen und daraus (http://www.vim.org/htmldoc/if_ruby.html#Ruby) werde ich auch nicht schlau

ruby ist installiert und vim ist natürlich mit +ruby kompiliert

tictactux
17.01.05, 20:49
Sag mal genauer was Du machen willst: ist das auszuführende ruby-Programm eines das in vim laufen soll (wg. +ruby) oder
extern, über den ruby-Interpreter.
Im zweiten Fall sollte dir :help quickfix helfen oder auch :help make

Gruß,
Wolfgang

PS: das Banalste hab ich nicht gefragt: hast Du schon
:!%
versucht :D ?

darkmind
17.01.05, 21:31
das ruby-programm soll mit vim geöffnet und editiert werden
das speicher ich das ganze ab (:w) und will das ruby programm dann direkt aus dem vim heraus starten

:!% liefert folgendes:


zsh: command not found: array.rb

shell returned 127

Hit ENTER or type command to continue
[No write since last change]
zsh: command not found: array.rb

shell returned 127

Hit ENTER or type command to continue
array.rb ist das in vim geöffnete file

wenn ich ein "ruby" davor setzte bekomme ich nur nen syntax error

SyntaxError: (eval): compile error

// EDIT: ok so funzt es wie ich will:

:rubyfile array.rb
oder so

:ruby load 'array.rb'

tictactux
17.01.05, 22:17
Also zu :!%
das führt die aktuell editierte Datei (%) über Deine default-Shell
(wie ich sehe zsh) aus.
Du müßtest einen korrekten Sha-Bang in die erste Zeile setzen, um den
ruby-Interpreter zu benutzen (#!/usr/bin/ruby), also genauso, als würdest
Du das Skript aus der Shell direkt starten..
Bei mir funktioniert das mit vim+Perl wie gerade beschrieben.

Gruß,
Wolfgang

darkmind
17.01.05, 23:11
hmm, funktioniert leider nicht
ruby liegt in /usr/bin/ruby

#!/usr/bin/ruby funzt nicht
#!/usr/bin/ruby -w funzt auch nicht
#!/usr/bin/env ruby funzt auch nicht

in allen fällen der gleiche fehler wie oben

tictactux
17.01.05, 23:33
hmm, funktioniert leider nicht
ruby liegt in /usr/bin/ruby
Tja, ich hab zu ruby nicht viel Praxis, aber ein kleiner Test funktioniert bei
mir aus vim. Inhalt der Datei:
#!/usr/bin/ruby
puts "BUH!!!"
Schreibt mit :!% genau das auf den Bildschirm :) (sowohl mit bash,
als auch nach :set shell=/usr/bin/zsh
Das Script muß natürlich ausführbar sein (chmod +x).

Also :confused:

EDIT: "command not found" kann auch heißen, daß das PWD nicht
in $PATH steht ! (ich glaube, vim macht kein ./ vor den Dateinamen)

darkmind
18.01.05, 00:48
mit der bash funktionierts. da hab ich auch alle oben genannten probleme nicht.
liegt also an der zshell.
zsh ist berits in der .vimrc eingetragen
und das script ist natürlich auch ausführbar

hmm, ich will aber meine zshell nicht wieder hergeben :confused:

tictactux
18.01.05, 01:36
Prüfe nochmal die Konfiguration Deiner zsh. Ich schätze, Du mußt ihr nur
irgendwie sagen, daß sie das aktuelle Verzeichnis (oder wo immer Dein
Skript liegt) absuchen soll ($PATH). Das "command not found" geht für mich
eindeutig in diese Richtung.

Vielleicht mußt im vim auch nur die Commandflags (:help shellcmdflag)
anpassen. Siehe auch :help shelltype (und alles was in drum herum
beschrieben ist :) )