[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