GNU bug report logs - #8196
23.1; Feature request with code: "C-x TAB" to understand tab-stop-list

Previous Next

Package: emacs;

Reported by: Teemu Likonen <tlikonen <at> iki.fi>

Date: Mon, 7 Mar 2011 18:20:02 UTC

Severity: wishlist

Found in version 23.1

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 8196 <at> debbugs.gnu.org (full text, mbox):

From: Teemu Likonen <tlikonen <at> iki.fi>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 8196 <at> debbugs.gnu.org
Subject: Re: bug#8196: 23.1;
 Feature request with code: "C-x TAB" to understand tab-stop-list
Date: Fri, 12 Jul 2013 23:05:00 +0300
Drew Adams [2013-07-12 12:11:31 -07:00] wrote:

>>> I think it would be better if "C-x TAB" (bound to indent-rigidly)
>>> advanced the indentation to the next tab stop (as in tab-stop-list)
>>> by default, instead of by 1. Similarly, if negative prefix argument
>>> were given (with "C-u -") it would change the indentation to the
>>> previous tab stop.
>
> Sorry, that does not make sense to me.

First, here's some reference where this came from:
http://lists.gnu.org/archive/html/help-gnu-emacs/2011-03/msg00243.html
The feature supersedes indent-rigidly. If filed this wishlist bug report
because Stefan Monnier suggested so:

    Indeed, it sounds like a good improvement to the behavior of C-x
    TAB. Maybe you could propose it for inclusion via M-x
    report-emacs-bug.

Here's a concrete use-case. Let's say my tab-stop-list variable is like
(4 8 12 16 20 etc.). I'm in a message-mode buffer writing some email or
news message which is about Lisp programming. I copy a piece of code
from some other buffer, like this:

(defun foo (bar)
  (setq some-variable some-value)
  (some-function-call bar)
  ...)

I want to indent it so that it stands out from my normal text. I mark
the code piece with M-h and press C-x TAB (which runs my improved
indent-rigidly). It results in this:

    (defun foo (bar)
      (setq some-variable some-value)
      (some-function-call bar)
      ...)

The lowest indentation of that paragraph is now column 4. If I had kept
repeating TAB key the code would have been indented to columns 8, 12, 16
etc. as the tab-stop-list variable defines.

The doc string of that command could be like this:


    Indent region to a tab stop column or to the specified column.

    Indent the region from BEG to END according to the command's prefix
    argument ARG. If ARG is nil (i.e., there is no prefix argument)
    indent the region to the next tab stop column in `tab-stop-list'.
    With negative prefix ARG (C-u -) indent the region to the previous
    tab stop column. If ARG is an integer indent the region by ARG
    columns (just like `indent-rigidly' command).

    If this command is invoked by a multi-character key sequence, it can
    be repeated by repeating the final character of the sequence.




This bug report was last modified 11 years and 229 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.