Vim wird nach dem Ausführen von Node nicht aktualisiert

808
mahemoff

Ich führe aus :! Node app.js aus Vim heraus und nachdem ich Strg-c gedrückt habe, um es zu beenden, ist die untere Hälfte des Fensters leer. Selbst das Drücken von Strg-L zum Aktualisieren funktioniert nicht.

Dies ist sowohl bei OSX 10.6 und 10.7 als auch bei der Standardversion von OSX vim sowie der neuesten stabilen Version (vim 7.3) der Fall. Und ich habe es mit iterm, iterm2 und terminal.app probiert.

Wahrscheinlich nicht auf Knoten bezogen, aber wenn ich einen Befehl wie "! Ls" oder "! Cat%" (zum Echo der aktuellen Datei) ausführe, funktionieren sie gut.

1
Haben Sie überprüft, ob Ctrl-l neu zugeordnet wurde? Das Ausführen im Hintergrund hat das gleiche Problem: `! Node app.js &` Oder Sie können vim auf einem echten Computer anstelle von iOS verwenden. idbrii vor 13 Jahren 0
Ctrl-l funktioniert definitiv, aber es aktualisiert nicht den bereits verschwundenen Teil. Das Ausführen des Knotenprozesses im Hintergrund oder sogar das Umleiten auf / dev / null hat keine Auswirkungen. mahemoff vor 13 Jahren 0
Wenn Sie also den Knoten im Hintergrund ausführen, wird Ihr Bildschirm beschädigt, selbst wenn alle Ausgaben umgeleitet werden (stdout und stderr). Das hört sich wirklich verrückt an. Vielleicht würde ein Screenshot helfen? Was ist, wenn Sie `set makeprg = node` und`: make app.js` verwenden? idbrii vor 13 Jahren 0
Ich weiß, es ist verrückt. Besser als ein Screenshot, hier ist ein Screencast. http://media.shinywhitebox.com/michael-mahemoff/vim-unrefresh Wenn Sie "coffee%" ausführen, wird das untere Drittel des Bildschirms gelöscht, selbst nachdem Sie ctrl-l gedrückt haben. Nur "v" Auswahl bringt es zurück, aber auf wirklich unbequeme Weise. (Erster Upload mit iShowU, sorry, es kommt so klein heraus, aber ich denke, der Punkt ist gemacht.) mahemoff vor 13 Jahren 0

1 Antwort auf die Frage

1
idbrii

Sie sollten wahrscheinlich verwenden :make. (Hinweis: Das bedeutet nicht, dass Sie ein Makefile benötigen.)

Vim makeist so eingerichtet, dass alle Ausgaben umgeleitet werden, sodass Kontrollsequenzen (wie das Einstellen der Schriftfarbe) keine Verwirrung verursachen. (Sie können sehen, welche Optionen make macht, wenn es ausgeführt wird.)

Sie müssen Ihr Make-Programm zuerst auf Ihren Interpreter statt auf Make setzen.

set makeprg=node make app.js 

Sie sollten die Ausgabe in Ihrem Quickfix-Fenster ( :copen) erhalten. Möglicherweise möchten Sie das richtige errorformatfür Javascript / Kaffee finden, damit Fehler richtig analysiert werden. Hier ist ein ziemlich komplett aussehendes Vim-Coffee-Plugin .

Danke für den Vorschlag. Ich habe keine Ahnung, was los ist, aber leider war es das gleiche Ergebnis wie zuvor. makeprg hat seine Aufgabe erledigt und der Server lief, aber der Bildschirm wurde nicht mehr angezeigt. mahemoff vor 13 Jahren 0