2012-10-14 14 views
8

Ich versuche meine ESS - R - Umgebung zu optimieren. Bisher nutze ich die r-autoyas, setze Absicht und Sachen nach style guides, im Mini-Puffer gibt es Eldoc-Hinweise für Funktionsargumente, und ich habe die Option press a key, um Informationen über Variablen am Punkt zu finden (mehr here) .Anpassen der ESS - Umgebung für R

Gibt es noch andere Dinge, die Sie verwenden, um eine schöne R-Umgebung zu haben? Vielleicht haben Nicht-ESS-Leute ein paar nette Dinge hinzuzufügen (Ich habe diese Info der Variable von einem Eclipser gesehen). Ein Beispiel könnte eine einfache Möglichkeit sein, "nur vordefinierte" Variablen einzufügen, ohne den Variablennamen einzugeben (sollte etwas dafür sein?).

(Bitte helfen Sie mir die Frage statt „Schließen“ den Faden zu ändern, wenn es nicht gut formuliert ist)

+0

Könnten Sie besser beschreiben, was Optimierung suchen Sie? Ich - und vielleicht ein paar andere Leute - kenne ESS nicht. Kannst du es beschreiben? Schließlich könnten Sie bitte die Befehle auflisten, die Sie bereits durchgeführt haben, um sie zu optimieren - nicht auf anschauliche Weise? – Ali

+0

Ich habe die Post mit Links zu den Beispielen aktualisiert, die ich erwähnt habe. Mit einer netten R-Umgebung möchte ich es einfach machen, es so komfortabel und schnell wie möglich zu machen. Leute, die mit ESS nicht vertraut sind, könnten vielleicht ihre bevorzugte Erweiterung/Funktion/ihr Plugin ihrer R-Umgebung erwähnen, die ihnen hilft, ihren Workflow zu optimieren. – PascalVKooten

+1

Haben Sie R-Studio ausprobiert? Ich denke, es ist eine der besten IDEs für R. – Ali

Antwort

7

ich nicht autoyas bin mit, wie ich auto-complete integration ein besserer Ansatz zu finden.

Das Einfügen von zuvor definierten Symbolen ist eine allgemeine Emacs-Funktionalität namens 'dabbrev-expand' und ist an M-/ gebunden. Ich habe dies in meinem .emacs, um es auf volle Symbole komplett zu machen:

(setq dabbrev-abbrev-char-regexp "\\sw\\|\\s_\\|s.") 
(setq dabbrev-case-fold-search t) 

Eine andere Sache, die ich ausgiebig imenu-based-jump-to-symbol-definition ist verwenden. Es bietet ähnliche Funktionen wie Emacs-Tags, aber nur für offene Puffer im selben Modus wie der aktuelle Puffer. Es nutzt auch IDO für Rückfragen:

imenu-anywhere screenshot

Put imenu-anywhere.el in Ihrem Emacs Lastpfad und fügen Sie diese:

(require 'imenu-anywhere) 
(global-set-key [?\M-o] 'imenu-anywhere) 

Nun, wenn ich Mo foo RET tun Emacs springt auf die function/class/method/generische Definition von 'foo' solange 'foo' in einem der offenen Puffer definiert ist. Dies funktioniert natürlich immer dann, wenn ein Modus Imenu-Tags definiert. ESS definiert diese, daher sollten Sie nicht mehr hinzufügen müssen.

Es gibt auch irgendwo eine Sammlung von R-Yas Vorlagen. Ich bin nicht dazu gekommen, sie zu benutzen, aber meine Vermutung ist, dass es ein ziemlich effizienter Template-Einfügemechanismus ist.

[Bearbeiten] aktivieren tracebug:

(setq ess-use-tracebug t) 
+0

Könnten Sie "zuvor definierte Symbole, M- /" erweitern?Ich kann nicht scheinen, dass dies funktioniert ("keine dynamische Erweiterung für X") – PascalVKooten

+0

Könnten Sie auch erklären, wie Sie ein IMENU-Tag hinzufügen? das imenu-anywhere.el zu lesen hilft nicht. – PascalVKooten

+0

, dass Auto-Complete hier wirklich nützlich scheint! – PascalVKooten

Verwandte Themen