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

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

Re: Tabs (yikes)


From: Benjamin Rutt
Subject: Re: Tabs (yikes)
Date: Tue, 18 Mar 2003 13:44:20 -0500
User-agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.3.50 (sparc-sun-solaris2.8)

"Tony Vitonis" <vitonis@comcast.deletethis.net> writes:

> My problem is this: In text mode, I want the Tab key to move to the
> next default-tab-width stop, no matter what the context.  I've been
> able to do it with these options:
>
>    (define-key text-mode-map [tab] 'tab-to-tab-stop)
>    (setq tab-stop-list '(3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48
> 51 54 57 60 63 66 69 72 75 78))
>
> But I can *not* seem to find a way to make it happen using my
> default-tab-width, which I've specified this way:

tab-width (which is derived from default-tab-width if unset) is used
to control the display of tabs in buffers, not to control what happens
when you press the TAB key.  Your solution of setting the
tab-stop-list is basically the right idea.  I use the following code
in several places to build up the list appropriately in various major
modes:

(defun my-build-tab-stop-list (width)
  (interactive "nEnter desired width: ")
  (let ((num-tab-stops (/ 80 width))
        (counter 1)
        (ls nil))
    (while (<= counter num-tab-stops)
      (setq ls (cons (* width counter) ls))
      (setq counter (1+ counter)))
    (setq tab-stop-list (nreverse ls))))

Then, in your case, you can do a (my-build-tab-stop-list 3), which is a
little cleaner.

Note that you'll also want (setq tab-width 3) in text-mode so that
your displayed tabs look correct on files you've created with the
above settings.
-- 
Benjamin


reply via email to

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