Creo que no todos los usuarios de R conocen elisp. Sería bueno si los usuarios de ESS pudieran compartir su código en su archivo .emacs aquí. Un código bien comentado sería particularmente útil. Espero que esto promueva el uso de ESS por los usuarios R.Pedir a los usuarios de ESS/R sugerencias para códigos elisp en el archivo .emacs
Respuesta
Para mí, esto es increíblemente útil:
;; ESS: Emacs Speaks Statistics
(load "~/elisp/vendor/ess/lisp/ess-site.el")
;; Use shift-enter to split window & launch R (if not running), execute highlighted
;; region (if R running & area highlighted), or execute current line
;; (and move to next line, skipping comments). Nice.
;; See http://www.emacswiki.org/emacs/EmacsSpeaksStatistics,
;; FelipeCsaszar. Adapted to spilit vertically instead of
;; horizontally.
(setq ess-ask-for-ess-directory nil)
(setq ess-local-process-name "R")
(setq ansi-color-for-comint-mode 'filter)
(setq comint-prompt-read-only t)
(setq comint-scroll-to-bottom-on-input t)
(setq comint-scroll-to-bottom-on-output t)
(setq comint-move-point-for-output t)
(defun my-ess-start-R()
(interactive)
(if (not (member "*R*" (mapcar (function buffer-name) (buffer-list))))
(progn
(delete-other-windows)
(setq w1 (selected-window))
(setq w1name (buffer-name))
(setq w2 (split-window w1 nil t))
(R)
(set-window-buffer w2 "*R*")
(set-window-buffer w1 w1name))))
(defun my-ess-eval()
(interactive)
(my-ess-start-R)
(if (and transient-mark-mode mark-active)
(call-interactively 'ess-eval-region)
(call-interactively 'ess-eval-line-and-step)))
(add-hook 'ess-mode-hook
'(lambda()
(local-set-key [(shift return)] 'my-ess-eval)))
(add-hook 'inferior-ess-mode-hook
'(lambda()
(local-set-key [C-up] 'comint-previous-input)
(local-set-key [C-down] 'comint-next-input)))
(require 'ess-site)
Tomado de: http://www.kieranhealy.org/blog/archives/2009/10/12/make-shift-enter-do-a-lot-in-ess/
En Debian/Ubuntu, utilizo el paquete ESS que requiere hay entradas adicionales en absoluto .emacs
ya que utiliza la configuración de todo el sistema de /etc/emacs/site-start.d/50ess.el
. En Windows, tengo que configurar la ruta a Rterm.exe
y fuente ess-site.el
, tal como lo sugiere el manual de ESS.
que tienen, sin embargo esto ... que es una copia casi directamente de los que hace referencia el Manual del R 'Extensiones:
;; edd 12 May 2006 from R-exts.texi
;; with one variation
;;; C
(add-hook 'c-mode-hook
;;(lambda() (c-set-style "bsd")))
(lambda() (c-set-style "c++"))) ; edd
;;;; ESS
(add-hook 'ess-mode-hook
(lambda()
(ess-set-style 'C++)
;; Because
;; DEF GNU BSD K&R C++
;; ess-indent-level 2 2 8 5 4
;; ess-continued-statement-offset 2 2 8 5 4
;; ess-brace-offset 0 0 -8 -5 -4
;; ess-arg-function-offset 2 4 0 0 0
;; ess-expression-offset 4 2 8 5 4
;; ess-else-offset 0 0 0 0 0
;; ess-close-brace-offset 0 0 0 0 0
(add-hook 'local-write-file-hooks
(lambda()
(ess-nuke-trailing-whitespace)))))
;(setq ess-nuke-trailing-whitespace-p 'ask)
;; or even
(setq ess-nuke-trailing-whitespace-p t)
Interesante. ¿Configura el ESS manualmente cada vez que lo inicia? Por ejemplo, dividir las ventanas y comenzar con R. Me parece bastante problemático. Utilicé el código de http://www.kieranhealy.org/blog/archives/2009/10/12/make-shift-enter-do-a-lot-in-ess/ para automatizar eso. – ggg
Puede encontrar un buen archivo de configuración en el sitio web de John Fox 'http://socserv.mcmaster.ca/jfox/Books/Companion/ESS/, que configura todo automágicamente. Está diseñado para Xemacs pero funciona bien para Emacs (quizás con algunas modificaciones). – Calimo
- 1. Elisp: Pedir sí o no en los comandos interactivos
- 2. bignum en emacs/elisp
- 3. Devolución de llamada polimórfica en Emacs/Elisp
- 4. imprimir símbolos de emacs en elisp
- 5. ¿Está manteniendo los archivos de autocarga de Emacs para elisp instalado por el usuario?
- 6. ¿Ejecuta el programa elisp sin Emacs?
- 7. Emacs Elisp solicitud interactiva dinámica
- 8. elisp: comando de llamada en el archivo actual
- 9. emacs quita todos los códigos de color ansi en shells
- 10. Comportamiento de Emacs elisp expand-file-name en Windows
- 11. elisp condicional basado en el nombre de host
- 12. Ejemplos simples de clientes tcp en emacs elisp?
- 13. ¿Hay un truco para depurar un giro en emacs elisp, en un módulo flymake?
- 14. Convertir símbolo a cadena en Elisp
- 15. Programación CGI en Elisp?
- 16. ¿Por qué no debo pedir a mis usuarios que ingresen las horas usando el formato militar
- 17. Cómo determinar el sistema operativo en elisp?
- 18. ¿Cómo invocar un intérprete de elisp interactivo en Emacs?
- 19. Cómo depurar elisp?
- 20. ¿Cómo puedo saber en elisp si Emacs usa X?
- 21. Regexps en Elisp para incluir líneas nuevas
- 22. Elisp: cómo guardar datos en un archivo?
- 23. Prueba de plataforma en elisp?
- 24. Sugerencias para el problema java.lang.String.replace?
- 25. Sugerencias para un archivo falso de Java (para simular java.io.File)
- 26. Cómo quitar los códigos de color utilizados por los usuarios de mIRC?
- 27. ¿Sugerencias para pasar de C# a Java?
- 28. Lenguaje F # - sugerencias para los novatos
- 29. Maximización de un marco de Emacs a solo un monitor con elisp
- 30. ¿Cómo acelerar los códigos MATLAB?
He usado también. Esto hace que el comportamiento de ESS [S] sea más parecido al de Rgui.exe y puede atraer a nuevos usuarios de ESS. – ggg