2012-10-09 5 views
19

emacs essでインデントを変更するにはどうすればいいですか? 私は一般的にデフォルトのものが好きです(エッセンスセットのスタイル 'C++' quiet) しかし時にはそれは本当に奇妙にフォーマットします。emacsのインデントを変更する

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()) 

これは私がの内側にそれを置く場合、私は、現在のインデントスタイルで得るものです。たとえば、これは私が持っていると思いますし、それが機能の一部でない場合、これがデフォルトの書式になりますものです関数。

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()) 
} 

UPDATE:私は再インストール後、両方VitoshKaのとダークの提案に続いて、更新の.emacs問題が去っていきました。ありがとうございます。

UPDATE2:問題は戻っています。私は今、それがすべての人に再現できると思う。私は2つの異なるマシンで試しました。それは、関数の中にコードを入れるときに起こります。変更を反映するように投稿を更新しました。

+2

問題が解決しない場合は、[この解決方法](https://github.com/emacs-ess/ESS/issues/99)を参照してください。 – gongzhitaao

答えて

8

私は

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()) 

を取得し、私はストレート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))) 

コメント内の値を変更することができます。

+0

Dirk、簡単な質問どうすればコメントの値を変更できますか?コメントを外して変更するだけですか? – ilya

+1

一般的に、 '(setq some-variable new-value)'と評価したり、Emacsを強制的に再起動したりします。 –

+0

ダーク、最新の投稿をご覧ください。 – ilya

6

私もあなたの問題を抱えていません。更新しようとすると古いバグかもしれません。

いずれにしてもC-c。は、その場でインデントスタイルを変更することができます。推奨されるのはRRRです。

関連する問題