2012-10-09 31 views
19

Me gustaría saber cómo puedo cambiar la sangría en emacs ess. Generalmente me gusta el predeterminado (ess-set-style 'C++' tranquilo) Pero a veces da un formato realmente extraño. Por ejemplo, esto es lo que me gustaría tener, y este será el formato por defecto si no es parte de la función:cambio de sangría en emacs ess

ggplot(data = overtime.by.month, 
     aes(x="", 
      y=Percent, 
      fill = Overtime)) + 
    geom_bar(width = 1) + 
    xlab('') + 
    ylab(sub.txt) + 
    labs(title = title.txt) + 
    facet_wrap(~Year.Month) + 
    geom_text(aes(y = txt.pos, label = Per.txt)) + 
    coord_polar(theta = "y") + 
    scale_fill_manual(values = c('green', 'red')) + 
    theme(axis.ticks = element_blank(), 
     axis.text.y = element_blank(), 
     axis.text.x = element_blank()) 

Esto es lo que me pasa con el estilo de sangría actual, si lo pongo en el interior de la función.

a <- function(){ 

    a <- ggplot(data = overtime.by.month, 
       aes(x="", 
        y=Percent, 
        fill = Overtime)) + 
         geom_bar(width = 1) + 
          xlab('') + 
           ylab(sub.txt) + 
            labs(title = title.txt) + 
             facet_wrap(~Year.Month) + 
              geom_text(aes(y = txt.pos, label = Per.txt)) + 
               coord_polar(theta = "y") + 
                scale_fill_manual(values = c('green', 'red')) + 
                 theme(axis.ticks = element_blank(), 
                   axis.text.y = element_blank(), 
                   axis.text.x = element_blank()) 
} 

ACTUALIZACIÓN: He seguido tanto Vitoshka de sugerencias y de Dirk, después de la reinstalación, y actualizar .emacs problema desapareció. Gracias chicos

UPDATE2: El problema está de vuelta. Creo que ahora será reproducible para todos. Intenté en dos máquinas diferentes. Sucede cuando pones código dentro de la función. Actualicé la publicación para reflejar los cambios.

+2

Consulte [esta solución] (https://github.com/emacs-ess/ESS/issues/99) si todavía tiene el problema. – gongzhitaao

Respuesta

8

me sale

ggplot(data = overtime.by.month, 
     aes(x="", 
      y=Percent, 
      fill = Overtime)) + 
    geom_bar(width = 1) + 
    xlab('') + 
    ylab(sub.txt) + 
    labs(title = title.txt) + 
    facet_wrap(~Year.Month) + 
    geom_text(aes(y = txt.pos, label = Per.txt)) + 
    coord_polar(theta = "y") + 
    scale_fill_manual(values = c('green', 'red')) + 
    theme(axis.ticks = element_blank(), 
      axis.text.y = element_blank(), 
      axis.text.x = element_blank()) 

y que utilice los valores predeterminados directamente de los manuales R.

;; R-internals manual 
;;; ESS 
(add-hook 'ess-mode-hook 
     (lambda() 
     (ess-set-style 'C++ 'quiet) 
     ;; 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) 
;; Perl 
(add-hook 'perl-mode-hook 
     (lambda() (setq perl-indent-level 4))) 

Puede modificar esos valores en el comentario.

+0

Dirk, pregunta rápida ¿cómo puedo modificar los valores en el comentario? solo dejar de comentar y cambiar? – ilya

+1

Im general, '(setq some-value new-value)' y luego quiere evaluar eso, o forzar un reinicio de Emacs. –

+0

Dirk, ¿pueden echar un vistazo a la publicación actualizada? – ilya

6

Tampoco veo su problema. Intenta actualizar, podría ser un error antiguo.

En cualquier caso C-c. le permite cambiar los estilos de sangría sobre la marcha. El recomendado es RRR.

Cuestiones relacionadas