1

私はemacsにまったく慣れていません(主にvimとeclipse / netbeansなどを使用しています)Cコードのマルチレベルネストで遊んでいて、ネストが深すぎるコードをインデントする方法をテストするためにemacsにサンプルコードを書きました(そうではありませんただし、実際のコード)。

int foo()
{
    if (something) {
        if (anotherthing) {
            if (something_else) {
                if (oh_yes) {
                    if (ah_now_i_got_it) {
                        printf("Yes!!!\n");
                    }
                }
            }
        }
    }
}

これは、emacs で入力して保存したときとまったく同じように見えました。しかし、別のテキスト エディターで開くと、保存された実際のテキストは次のようになります。

int foo()
{
    if (something) {
    if (anotherthing) {
        if (something_else) {
        if (oh_yes) {
            if (ah_now_i_got_it) {
            printf("Yes!!!\n");
            }
        }
        }
    }
    }
}

それで、実際に表示される方法でテキストを保存する方法がemacsにあるのではないかと思っていましたか?

私の現在の c-default-style は「linux」に設定されています。

編集:

OK、私はメモ帳++/Vimを使用してemacsによって保存されたファイルを表示していましたが、「間違った」インデントが示されていましたが、古き良きメモ帳で開く(またはcat file.cを実行する)と、次のように正しいインデントが表示されますemacs. ここに記載されている他のアプローチを試します。ありがとう!

4

1 に答える 1

3

インデントにはタブの代わりにスペースを使用してみてください。以下を init.el に追加します。

(setq-default indent-tabs-mode nil)

これにより、デフォルトですべてのバッファがスペースを使用するようになります。makefile に次の例外を追加する必要があります。

(add-hook 'makefile-mode-hook (lambda () (setq indent-tabs-mode t)))
于 2013-01-03T09:42:30.060 に答える