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

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

Re: [emacs] tabs, spaces, and indentation


From: Steve Revilak
Subject: Re: [emacs] tabs, spaces, and indentation
Date: Mon, 11 Oct 2010 21:42:56 -0400
User-agent: Mutt/1.5.20 (2009-06-14)

From: Nerius Landys <nlandys@gmail.com>

For (1) something like

 (setq c-basic-offset 8
      indent-tabs-mode t
      c-insert-tab-function 'tab-to-tab-stop)

 (setq c-syntactic-indentation nil) ; maybe, or maybe not this one

should be close to the behavior you're looking for.

For (2), try

 (c-toggle-electric-state -1)

Thanks a lot for this information.  I have taken your tips and done
additional online research.  I came up with the following .emacs file for
this project that has absolutely horrid indentation and use of tabs:

 (defun my-c-mode-common-hook ()
   (c-toggle-electric-state -1)
   (define-key c-mode-base-map (kbd "TAB") 'self-insert-command))
 (add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

Nerius,

That's great.  I'm glad I was able to give you a starting point.



It almost behaves how I want now.  I hit Tab, it creates a tab.  It does not
start indenting stuff when I type a special character such as a paren or a
semicolon.  However, there is still one thing needed to make it behave just
like Notepad.  Let's say my cursor is positioned immediately following a tab
character.  When I hit Backspace (I believe that causes a function
"backward-delete-char" to be called), it converts that tab character into a
bunch of spaces, then deletes the last space.  I would really like Backspace
to just delete the tab character.  Is there any way to do this?  I suppose
I'd have to rebind Backspace to a function other than backward-delete-char,
but I'm not sure which function.

In C-mode, "C-h k DEL" tells me that DEL calls c-electric-backspace,
which in turn calls the function bound to c-backspace-function.

For me, c-backspace-function is bound to
backward-delete-char-untabify, which will convert a tab into a series
of spaces.

Maybe

   (setq c-backspace-function 'backward-delete-char)

is what you're looking for.

Steve

Attachment: pgpEYpZahdpWn.pgp
Description: PGP signature


reply via email to

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