2011-02-28 18 views
24

いくつかの理由から、TABを押すと、スペースを挿入するようにエディタを構成する方が好きです。Emacs:スペースの代わりにタブを挿入する

最近、私はタブがメイクファイルのタブとして残っていることを発見しました。

メイクファイルを書き込む必要があるたびに、エディタを再設定せずにタブ(\tではなく、" ")を挿入するにはどうすればよいですか?

は、私は次のエディタを使用します。 EmacsKategedit、およびVisual Studioエディタ。

答えて

8

正しい場所で右キーを押す限り、タブとスペースを挿入する場所をEmacsのMakefileモードで処理します。どちらか、または私は質問のいくつかの詳細を逃した。

+3

はい、makefile-mode(またはBSDmakefile-mode)の場合、emacsの場合はスペースの代わりにタブを挿入する必要があります。何らかの理由でタブを挿入する必要がある場合は、構成がうまくいかないために "C-qタブ"を使用しないでください。 –

55

手動でEmacsにタブを挿入するには、ctrl-Q TABを使用します。 control-Qは、可能なコマンドとして解釈されるのではなく、次のキーを挿入させる。

+1

も機能しました。ありがとう。 – pic11

+3

これはどうして受け入れられた答えではありませんか? – Nikhil

+0

ありがとう、それは今私をしばらく盗まれています。 – Vincent

0

Smart inference of indentation style EmacsWikiのNoTabsページのセクションは非常に役に立ちました。ほとんどのプロジェクトでスペースを設定する方法を示していますが、編集中のファイルにスペースで始まる行よりもタブで始まる行が多い場合はタブに切り替えます。

ここでは、コードです:[私のCモードフックで、または他のどんなモード私はスマートインデントを持つようにしたい]

(defun infer-indentation-style() 
    ;; if our source file uses tabs, we use tabs, if spaces spaces, and if   
    ;; neither, we use the current indent-tabs-mode        
    (let ((space-count (how-many "^ " (point-min) (point-max))) 
     (tab-count (how-many "^\t" (point-min) (point-max)))) 
    (if (> space-count tab-count) (setq indent-tabs-mode nil)) 
    (if (> tab-count space-count) (setq indent-tabs-mode t)))) 

(setq indent-tabs-mode nil) 
(infer-indentation-style) 

これはまだ可能性が常にmakefileのようなタブを持つ新しいファイルを編集するときに問題になります。それらのために、あなたのモードフックはタブに設定するだけです。例:

(add-hook 'makefile-mode-hook 
    '(lambda() 
    (setq indent-tabs-mode t) 
    ) 
) 
関連する問題