2009-04-23 24 views
43

私はEmacsのEmacs-Speaks-Statistics(ESS)モードを使用しています。 Rコードを編集するとき、上に新しい行を作成すると、コメント行(#で始まる行)が自動的に右端にタブ付きになります。 .emacs.elファイルを変更するにはどうすればよいですか?例えばEmacs ESSモード - コメント領域のタブ設定

、私が持っている:

# Comment 

を今、行の先頭に私のカーソルを置き、Enterキーを押した後、私が取得:任意のヒントについて

       # Comment 

感謝を。

答えて

51

コメントを字下げしたくない場合は '###'を使用します。デフォルトではmanual

によると、 で始まるコメントは「###」 行の先頭に並んでいます。 '##'で始まるコメントは の現在のレベルに合わせて、 のコメントを含むブロックのインデントに合わせます。最後に、右側の 列に整列されている「#」で始まる コメント(デフォルトでは40番目の列 が、この値は、変数 コメント列によって制御 である)、または単にライン上 式の後 のインデント欄を超えている場合は、 コメントを含む

+1

このまったく同じ質問をする前に私が見てうれしいです。私はそれが本当に上記の答えより良い解決策だと思うので、私はこの答えをマークアップしました。私はこれがESSモードのバグ/問題だと長い間考えていましたが、構文を調整した後、私の問題はすべて消えてしまいました。 – Choens

+3

Emacsをあまり使わないと、この規則は奇妙に思えるかもしれません。しかし、この慣習はlispとemacs-lispから来ています。セミコロンの数はコメントのタイプを表し、それでどのようにインデントされるべきですか。 –

29

どちらか

(setq ess-fancy-comments nil) 

あなたはシングル#コメントをインデントしたくない場合は、または

(add-hook 'ess-mode-hook 
      (lambda() 
      (local-set-key (kbd "RET") 'newline))) 

あなたが入力の動作を変更したい場合はそれがインデントしません。

+0

これは単に崇高である。しかし、私はありませんここにアプローチを見つけました!ありがとう!!! – aL3xa

+4

むしろ、行末のコメントに "#"を使うべきだと思います。これらは、目的のために同じカラムにうまくインデントされています。 他のコメントについては、実際には「##」 (はるかに「###」以上)を使用する習慣に入ります。これらのインデントは、そのコードブロック内の他の「ステートメント」と同じです –

+2

私はまだ好意的です私は何個の#を使用すべきかを決める。 1つは一般的に十分ですので、私のコメントは私がそれが欲しくない場所に移動されていないので、この答えが大いに高く評価されています... – user989762

1

私はJouniの答えがうまくいかなかった。 https://stat.ethz.ch/pipermail/ess-help/2016-May/010970.html

(defun my-ess-settings() 
    (setq ess-indent-with-fancy-comments nil)) 
    (add-hook 'ess-mode-hook #'my-ess-settings) 
+0

はい、私はそれを動作させるためにもこれを実行しなければなりませんでした。そうしないと、ローカルでオーバーライドされます。 –

関連する問題