すべてのタブを4つのスペースにしたい。私は.emacs
メジャーモードに関係なく、タブの代わりにスペースを入れるには?
(setq-default indent-tabs-mode nil)
(setq c-basic-indent 4)
(setq tab-width 4)
に次のように持っているが、これは私が使用できるメジャーモードのテーマの一部によって上書きされます。私の.emacs
ファイルでこの問題を強制する方法はありますか?
すべてのタブを4つのスペースにしたい。私は.emacs
メジャーモードに関係なく、タブの代わりにスペースを入れるには?
(setq-default indent-tabs-mode nil)
(setq c-basic-indent 4)
(setq tab-width 4)
に次のように持っているが、これは私が使用できるメジャーモードのテーマの一部によって上書きされます。私の.emacs
ファイルでこの問題を強制する方法はありますか?
任意のメジャーモードが上書き何でも上書きするために、これを試してみてください:
(add-hook 'after-change-major-mode-hook
'(lambda()
(setq-default indent-tabs-mode nil)
(setq c-basic-indent 4)
(setq tab-width 4)))
注c-mode
に基づいていないことのメジャーモードを約c-basic-indent
を気にする可能性はなく、潜在的に自分自身、モード固有の使用かもしれませんインデント変数。そのような場合、これらの変数を手動で設定する方法はありません。
私はこの問題を特に醜いハックで "解決"しました。むしろ場所で右のメジャーモードのフックを取得する方法を見つけ出すことを試みるよりも、私は次のようでした:
(defun save-buffer-without-tabs()
(interactive)
(untabify (point-min) (point-max))
(save-buffer))
(global-set-key "\C-x\C-s" 'save-buffer-without-tabs)
これは恐ろしくいくつかのものを壊し(私は気にしていること、それらのものは、PythonとのMakefileです)。このように、私はまた、次のようでした:
;; restore the original save function for makefiles
(add-hook 'makefile-mode-hook
(lambda()
(define-key makefile-mode-map "\C-x\C-s" 'save-buffer)))
;; restore the original save function for python files
(add-hook 'python-mode-hook
(lambda() (define-key python-mode-map "\C-x\C-s" 'save-buffer)))
私はトーマスが言及after-change-major-mode-hook
を認識しませんでしたが、彼の解決策は、何らかの理由であなたのために動作しない場合、私はいくつかのためにこれを使用してきました今何年も事故なく。
:詳細を確認すると、私が答えた質問を正確に聞いているとは思われません。私はすべてのタブをnukingは一貫性のあるインデントを取得する1つの方法だと思います。 :)
特定のスタイルパラメータを宣言するのではなく、デフォルトのC indentation styleを宣言します。
(setq c-default-style "k&r2") ;; or whatever your preference is
(set-default 'indent-tabs-mode nil)
本当にこれが欲しいですか?一部のファイル形式(メイクファイルなど)では、正しく動作するためのタブが必要です。 –
それでも 'C-q TAB 'を使ってリテラルタブを挿入することができます。 – sjas