2012-10-14 14 views
8

Sto cercando di ottimizzare il mio ambiente ESS - R. Finora utilizzo lo r-autoyas, ho impostato l'intenzione e le cose dopo style guides, nel mini-buffer ci sono suggerimenti eldoc per gli argomenti delle funzioni, e ho l'opzione per press a key per trovare informazioni sulla variabile al punto (altro here) .Personalizzazione dell'ambiente ESS per R

Ci sono altre cose che usi per avere un ambiente R piacevole? Forse le persone non-ESS hanno alcune cose carine da aggiungere (ho avuto l'informazione della variabile al punto di guardare un Eclipser). Un esempio potrebbe essere un modo semplice per inserire variabili "appena definite" senza digitare il nome della variabile (dovrebbe essere qualcosa per questo?).

(Ti prego, aiutami a cambiare la domanda invece di "chiudere" il filo, se non è ben formulato)

+0

Potresti descrivere meglio ciò che l'ottimizzazione stai cercando? Io - e forse alcune altre persone - non conosco l'ESS. Potresti descriverlo? Infine, potresti elencare i comandi che hai già fatto per ottimizzarlo, non in modo descrittivo? – Ali

+0

Ho aggiornato il post con i collegamenti agli esempi che ho citato. Con un buon ambiente R voglio solo renderlo il più comodo e veloce possibile da usare R. Le persone che non hanno familiarità con ESS potrebbero forse citare la loro estensione/funzione/plug-in preferita del loro ambiente R che li aiuta a ottimizzare il loro flusso di lavoro. – PascalVKooten

+1

Hai provato R-Studio? Penso che sia uno dei migliori IDE per R. – Ali

risposta

7

non sto usando autoyas come trovo auto-complete integration un approccio migliore.

L'inserimento di simboli precedentemente definiti è una funzionalità emacs generale denominata 'dabbrev-expand' ed è associata a M-/. Ho questo nel mio .emacs per renderla completa sui simboli pieni:

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

Un'altra cosa che io uso è ampiamente imenu-based-jump-to-symbol-definition. Offre funzionalità simili ai tag emacs, ma solo per i buffer aperti nella stessa modalità del buffer corrente. Esso utilizza anche IDO per le query:

imenu-anywhere screenshot

Put imenu-anywhere.el nel vostro percorso emacs carico e aggiungere questo:

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

Ora, se faccio Mo foo RET Emacs salta alla funzione/classe/metodo/definizione generica di "pippo" fintanto che "pippo" è definito in uno dei buffer aperti. Questo ovviamente funziona quando una modalità definisce imenu-tag. ESS definisce quelli, quindi non dovrebbe essere necessario aggiungerne altri.

C'è anche da qualche parte una raccolta di modelli R-yas. Non sono riuscito a iniziare a usarli, ma la mia ipotesi è che si tratta di un meccanismo di inserimento di template piuttosto efficiente.

[modifica] Attiva tracebug:

(setq ess-use-tracebug t) 
+0

Potresti espandere su "simboli precedentemente definiti, M- /"?Non riesco a farlo funzionare ("nessuna espansione dinamica per X") – PascalVKooten

+0

Puoi anche spiegare come aggiungere un tag imenu? leggere l'imenu-anywhere.el non aiuta. – PascalVKooten

+0

che il completamento automatico sembra davvero utile qui! – PascalVKooten

Problemi correlati