emacs - teclado - ctrl+enter para que sirve
Ăštiles atajos de teclado y consejos para ESS/R (5)
Cc Cz ess-switch-to-end-of-ESS
Es bueno saltar desde el archivo fuente que está editando foo.R a la consola R
Me gustaría preguntar a los usuarios habituales de ESS / R qué enlaces de claves utilizan con frecuencia y consejos sobre cómo usar ESS / R.
Grandes cosas, las he estado usando por años. Desafortunadamente, a partir del 15-11-2013, el enlace de la clave de descomención puede no funcionar debido a los cambios de EMACS (creo que, al menos, estaba funcionando antes de cargar la última versión). Esto se debe a que la función de omisión de comentarios predeterminada tiene 3 argumentos, pero la definida anteriormente tiene 2. La mejor manera de solucionar esto es simplemente eliminar la función de comentarización del código y conservar la combinación de teclas, por lo que utiliza la función de comentarización predeterminada. O en otras palabras, simplemente use esto:
- (define-clave ess-mode-map (kbd "Cd") ''comentario-región)
- (define-key ess-mode-map (kbd "CSd") ''uncomment-region)
He encontrado este enlace para ser extremadamente útil. Proporciona un código elisp para hacer que Shift + Enter realice muchas tareas comunes en una forma dependiente del contexto.
http://kieranhealy.org/blog/archives/2009/10/12/make-shift-enter-do-a-lot-in-ess/
He establecido varios accesos directos en mi archivo .emacs. Los más útiles son:
C-tab para cambiar entre la línea de comando R y el archivo (similar a la respuesta de josh, pero mucho más rápido):
(global-set-key [C-tab] ''other-window)
Controle y presione las teclas de flecha arriba / abajo para buscar en el historial que coincidan con lo que ya ha escrito:
(define-key comint-mode-map [C-up] ''comint-previous-matching-input-from-input)
(define-key comint-mode-map [C-down] ''comint-next-matching-input-from-input)
Comentar-descomentar una región seleccionada con Cd o C-maj-d
(defun uncomment-region (beg end)
"Like `comment-region'' invoked with a C-u prefix arg."
(interactive "r")
(comment-region beg end -1))
(define-key ess-mode-map (kbd "C-d") ''comment-region)
(define-key ess-mode-map (kbd "C-S-d") ''uncomment-region)
También he habilitado el modo CUA (desde el menú de opciones) y he reconfigurado muchos accesos directos para requerir solo dos pulsaciones (en lugar de cuatro en el modo estándar):
;; Delete selection when pressing [delete] key
(delete-selection-mode t)
;; ESS Mode (.R file)
(define-key ess-mode-map "/C-l" ''ess-eval-line-and-step)
(define-key ess-mode-map "/C-p" ''ess-eval-function-or-paragraph-and-step)
(define-key ess-mode-map "/C-r" ''ess-eval-region)
;; iESS Mode (R console)
(define-key inferior-ess-mode-map "/C-u" ''comint-kill-input)
(define-key inferior-ess-mode-map "/C-w" ''backward-kill-word)
(define-key inferior-ess-mode-map "/C-a" ''comint-bol)
(define-key inferior-ess-mode-map [home] ''comint-bol)
;; Comint Mode (R console as well)
(define-key comint-mode-map "/C-e" ''comint-show-maximum-output)
(define-key comint-mode-map "/C-r" ''comint-show-output)
(define-key comint-mode-map "/C-o" ''comint-kill-output)
;; Search with C-f / C-F (control-maj-F for backware search)
(global-set-key "/C-f" ''isearch-forward)
(global-set-key (kbd "C-S-f") ''isearch-backward)
(define-key isearch-mode-map "/C-f" ''isearch-repeat-forward)
(define-key isearch-mode-map (kbd "C-S-f") ''isearch-repeat-backward)
;; Save with C-s / C-S
(global-set-key (kbd "C-s") ''save-buffer)
(global-set-key (kbd "C-S-s") ''write-file)
;; need to redefine them for isearch mode (don''t know why)
(define-key isearch-mode-map (kbd "C-s") ''save-buffer)
(define-key isearch-mode-map (kbd "C-S-s") ''write-file)
;; Pause = dedicate window.
(defun toggle-current-window-dedication ()
(interactive)
(let* ((window (selected-window))
(dedicated (window-dedicated-p window)))
(set-window-dedicated-p window (not dedicated))
(message "Window %sdedicated to %s"
(if dedicated "no longer " "")
(buffer-name))))
(global-set-key [pause] ''toggle-current-window-dedication)
;; delete = delete
(global-set-key [delete] ''delete-char)
;; C-b = list buffers
(global-set-key (kbd "C-b") ''bs-show)
Encontrará muchos más atajos útiles en la documentación de ESS .
Mn y Mp en la consola ESS R para el siguiente / anterior comando.