Gibt es eine Möglichkeit, eine gute Autovervollständigung für Ruby in Vim einzurichten?

9

Ich habe versucht, die automatische Vervollständigung von Vim für Ruby-Code einzurichten und war nicht erfolgreich. Ich meine, die Dinge "funktionieren", aber ich würde erwarten, dass ein besseres Plugin oder eine bessere Konfiguration zur Verfügung steht.

Ich habe das rubycomplete-Plugin eingerichtet und es macht einen ordentlichen Job, aber nichts im Vergleich zu einer IDE wie RubyMine. Es war nur ein Hauch frischer Luft, als ich es installiert habe, um zu sehen, was ich vermisst habe. Es ist sich der Syntax, des Kontextes bewusst und zeigt normalerweise nur relevante mögliche Optionen.

Vielleicht habe ich die Dinge nicht richtig eingerichtet. Es war unmöglich, ein Tutorial, einen Blogbeitrag, eine gute Dokumentation darüber zu finden (besonders eine, die auf dem neuesten Stand ist). Manchmal findet man nur, dass es verschiedene Tools und Setups gibt und nicht viel darüber, wie man das macht.

Gibt es einen Gemeinschaftsstandard für diese Art von Dingen? Was sind die besten Werkzeuge, um dies zu erreichen? Irgendein gutes Tutorial, Quelle, Hinweise darauf, wie es geht?

Ich höre immer wieder Leute sagen, dass sie Vim einer IDE wie Rubymine vorziehen und dass sie mit der richtigen Plugin-Konfiguration so ziemlich das gleiche Verhalten bei vielen Aspekten erreichen können, aber meine Erfahrung ist nicht die selbe. Ich möchte Vim weiterhin verwenden, da es leichter ist und ich den Editor liebe, aber die Produktivität ist das Wichtigste und ich verschwende zu viel Zeit damit, Blogbeiträge von vor 3 und 4 Jahren darüber zu lesen, wie man das aufbaut.

    
bluediapente 31.08.2011, 16:28
quelle

2 Antworten

2

Sie können im Einfügemodus Ctrl + x und dann Ctrl + o (omni) drücken, um eine Liste der Ruby-Methoden zu erhalten. Wenn Sie bereits ein paar Zeichen eingegeben haben, zB ea , erhalten Sie each , each_with_index etc.

In meinen vimfiles muss die Tab-Zuordnung abgeschlossen sein, indem ein anderes Wort im Puffer verwendet wird.

Es ist nicht so groß wie eine IDE, z. B. Netbeans oder Rubymine, aber es funktioniert gut genug.

Nachdem Sie Ctrl + x gedrückt haben, können Sie weitere Kombinationen verwenden, die Sie mit Wörtern, Zeilen usw. vervollständigen können.

Es gibt auch eclimd, das eine kopflose Eclipse verwendet, um eine automatische Vervollständigung zu erreichen, aber ich habe es noch nie geschafft, herauszufinden, wie es funktioniert. Installieren und Verbinden von Vim mit Eclipse ist einfach, aber danach ...

Snipmate könnte eine Alternative sein, ea<tab> mit expand to each { |element| } .

    
Kris 21.10.2011 11:24
quelle
1

Für die meisten Operationen, bei denen ein gutes Verständnis der Sprache erforderlich ist, finde ich im Allgemeinen, dass Vim im Vergleich zu einer dedizierten IDE fehlt.

Sie können zum Beispiel Code mit scope nicht automatisch umdefinieren (indem Sie foo () in bar () in der Klasse Monkey ändern, aber nicht in der Klasse Ape in Ihrem gesamten Projekt).

Ähnlich ist Autovervollständigung nicht immer intelligent. Ich denke, dass die Situation für C / C ++ dank Tools wie clang_complete tolerierbar ist. Aber für Java, oder weniger populäre Sprache, hatte ich das Gefühl, dass das Abschluss-Skript dieser Aufgabe nicht gewachsen ist. Sie verbringen also viel Zeit damit, an Skripten herumzubasteln. Das Problem ist, dass Sie für eine gute Autovervollständigung die volle Leistung eines Interpreters oder Compilers nutzen müssen, und das ist anscheinend nicht einfach.

Ich benutze Vim immer noch hauptsächlich, weil ich effizienter bin, einen Teil des Codes zu bearbeiten, aber wenn die Situation es erfordert, verwende ich auch eine IDE neben Vim.

Ich kenne die spezifische Situation von Ruby nicht vollständig, aber ich bin mir nicht sicher, ob Sie eine positive Antwort bekommen werden.

Mein Traum wäre, dass jede IDE einen obligatorischen vollständigen vi-Eingabemodus hat.

    
Xavier T. 31.08.2011 16:49
quelle

Tags und Links