help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: replace TAB with 8 whitespaces


From: jinneemop
Subject: Re: replace TAB with 8 whitespaces
Date: Mon, 16 Jun 2003 19:52:57 +0000
User-agent: Pan/0.13.3 (That cat's something I can't explain)

On Mon, 16 Jun 2003 09:26:43 +0200, Kai Großjohann wrote:

> It inserts a tab and a space?  That's strange.  Is it always like
> this, or only in some situations.  Note the following snippet:
> 
> int main(int argc, char* argv[])
> {
>         int a;
>         printf("some %string\n",
>                argv[0]);
> }
> 
> Here, the "argv[0]" line will be indented in such a way that it
> aligns with the parenthesis above.  This means that the indentation
> depends on the length of the function name "printf".  For example, if
> it was "fprintf", then the indentation would be one column more.
> 
> Further, Emacs uses an optimum mix of tabs and spaces to achieve the
> desired indentation.  In the above example, the argv[0] line needs to
> be indented 15 columns, and since a tab is eight columns wide, the
> optimum mix is one tab and 7 spaces.
> 
> This behavior can be controlled with the variable indent-tabs-mode.
> Type M-x customize-variable RET indent-tabs-mode RET to change it.
> If indent-tabs-mode is nil (off, false), then Emacs will use 15
> spaces instead of 1 tab plus 7 spaces in the above case -- Emacs will
> never use tabs for indentation when indent-tabs-mode is off.
> 
> Does that explain Emacs' behavior?  Does changing indent-tabs-mode
> achieve what you want?

Thanks a lot. 
I add (setq indent-tabs-mode nil) to .emacs, and Emacs uses no 
tabs. But it inserts only 2 spaces!
Then I add this (googled from internet) to .emacs:
    (defun my-c++-mode-hook ()
      (c-set-style "k&r")
      (setq tab-width 8)
      (setq c-basic-offset 8)
      (define-key c++-mode-map "\C-m" 'reindent-then-newline-and-indent)
      (define-key c++-mode-map "\C-ce" 'c-comment-edit)
      (setq c++-auto-hungry-initial-state 'none)
      (setq c++-delete-function 'backward-delete-char)
      (setq c++-tab-always-indent t)
      (setq c-indent-level 8)
      (setq c-continued-statement-offset 8)
      (setq c++-empty-arglist-indent 8))
    (add-hook 'c++-mode-hook 'my-c++-mode-hook)
It works.  But becase I konw little about lisp, 
it is Greek to me. :-(
How can I start to learn lisp?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]