6

私は最近、emacs 23 から emacs 24 にアップグレードしました。デフォルトの js モードを使用して JavaScript を操作していると、emacs23 と emacs24 の js モードの間にマイナーではあるが面倒な違いがあることに気付きました。それが私の設定の1つではないことを確認するために、--no-init-fileオプションを指定してemacs23とemacs24を開始しましたが、同じ問題が発生しました。

js モードの emacs23 では、右中括弧 を入力すると}、一時的にカーソルが対応する左中括弧に戻り、右中括弧が適切なレベルのインデントにインデントされます。

emacs24でこれを行うと、対応する左中括弧への一時カーソルのジャンプが期待どおりに発生しますが、右中括弧がインデントされないため、タブキーを押してジョブを終了させます。

他の誰かがこの不一致を見ていますか? もしそうなら、それを修正する方法についてのアイデアはありますか?私のinit.elのどこかに設定するための素敵な「インデントオンクロージングカーリー」タイプの変数はありますか?

Xubuntu Linuxでemacsを使用しています(ソースからインストールしました)。他のプラットフォームでの 23 と 24 の比較はまだ行っていません。

: 代わりに Yegge の js2-mode を使用することを提案したい人がいるかもしれませんが、私は一般的にそれを使用するのが好きではなく、js-mode を正しく動作させたいと考えています。

4

2 に答える 2

11

私は満足のいく答えを見つけましたが、他の誰からも聞いていないので、他の人の助けになる場合に備えて、自分の答えを投稿して受け入れます。

emacs 23 と emacs 24 で js-mode の動作が異なる正確な理由はわかりませんでしたがelectric-indent-mode、.emacs または init.el で設定すると、必要な動作が得られます。これにより、閉じ括弧を入力するに実際にインデントされますが、それは私にとってはうまくいきます。これは、emacs 24 の新しい設定です。.emacs エントリは次のようになります。

(electric-indent-mode t)

私が遭遇した問題の 1 つは、org-mode が electric-indent-mode を好まないため、javascript/java/c/etc に対して electric-indent-mode を具体的に設定できることです。モードか、特に org-mode の設定を解除します。私はこれで後者を選びました:

(defun my-org-mode-hooks ()
  (electric-indent-mode -1))

(add-hook 'org-mode-hook 'my-org-mode-hooks)
于 2012-07-08T12:44:58.927 に答える