emacsのESS/Stataモードは、演算子で終わる行に続く行を間違ってインデントします。これらの行を複数行のコマンドとして誤って解釈しているようです。例えばESS/Stataで望ましくないEMACSタブ動作を修正しました
:
gen foo = 1
/* generate another variable */
gen bar = 1
線 "GENバー= 1" は、インデントされるべきではありません。 EMACSはコメント内の末尾のスラッシュを演算子として解釈し、このコード行が2行に及ぶと考えているようです。
実際、stataの複数行のコマンドには3つの末尾のスラッシュがあり、3つの末尾のスラッシュのない改行はステートメントの終わりを示します。例えば次の字下げは正しいでしょう:
gen bar = 1
gen ///
foo = 1
この動作を修正するために私の.emacsに入れることができるものはありますか?私は完全に自動タブを放棄したくありません - これは/ *このように見えるコメント以外のすべてに対してはうまく動作します* /。
おかげで、
PNJ
[ 'defadvice'](http://www.gnu.org/software/emacs/elisp/html_node/Advising-Functions.html)は、ここではクリーンな代替かもしれません。 – jfs
タイラー、あなたのコードを私の.emacsにコピーしましたが、動作は変わりません。私の* Messages *バッファにエラーや何も明白ではありません。診断の手助けをするために私ができることは何ですか? – pnj
再定義された関数にドキュメント文字列を追加すると、 'C-h f-ess-continue-statement-p'がロードされていることを確認できます。 doc-stringが表示されない場合、変更されたコードは評価されません。これは、間違ったモードが引用されているなど、 'eval-after-load'コマンドで何かが実行されていることを示します。上記のdoc-stringを追加します。 – Tyler