web-dev-qa-db-ja.com

JavaScriptモードのEmacsの自動インデントを完全に無効にする

JavaScriptでEmacsの自動インデントを3時間無効にしようとしましたが、(良い)解決策が見つかりませんでした。

私のEmacsバージョンは23.3.1(i486-pc-linux-gnu、GTK +バージョン2.24.3)で、少なくともそれはそう言っています。これは、GUIのDebian Linux(Wheezy)の標準パッケージです。

私は emacs javascript auto indentation (およびその他)を見つけましたが、自動インデントを削除するためだけに別のモードをインストールしたくありませんでした(そしてそれが機能する保証はありません)、基本モードは構文の強調表示を無効にしますさて、私が保持したいのですが、Cc Clは何もしません、javascript-auto-indent-flagnilに設定しても何もしません。

正確に必要なもの:Tabキーを押した場合にのみ、タブを挿入します。 「if」部分は機能しますが、「onlyif」部分は機能しません。なんでそんなに難しいのかしら?

5
GodsBoss

EmacsのJavascriptモードでは、文字}は関数js-insert-and-indentにバインドされています。このコードを.emacsスタートアップファイルに挿入することで、バインドして自分自身を挿入することができます。

(defun my-js-mode-hook ()
  "My personal Javascript mode hook."
  (local-set-key (kbd "TAB") 'tab-to-tab-stop)
  (local-set-key (kbd "RET") '(lambda () (interactive) (newline 1)))
  (local-set-key (kbd "SPC") 'self-insert)
  (local-set-key (kbd "}") 'self-insert))

(add-hook 'js-mode-hook 'my-js-mode-hook)

emacsを再起動します。そのような他の文字を見つけた場合は、フック関数のlocal-set-keyにさらに呼び出しを追加し、それぞれがkbd関数に異なる文字を渡すことができます。

1
Fran