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

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

Re: While editing a CMake file, how to turn off smart indentation?


From: Emanuel Berg
Subject: Re: While editing a CMake file, how to turn off smart indentation?
Date: Fri, 17 Jul 2015 00:55:15 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)

Yaron Cohen-Tal <yaronct@gmail.com> writes:

> I just want each line to get the same indentation as
> the previous line, and that TAB would indent 4
> spaces. For C++ I managed it with:
>
>     (setq-default indent-tabs-mode nil)

This (not having tabs) is a good idea!

>     (setq-default c-syntactic-indentation nil)

But why not have automatic indentation? C++ (and C)
are very straightforward when it comes to structure
and how nestedness is expressed in code, so why not
have the code display that visually, as well?

And, because it is so easy to do and looks the same
all the time (almost), one might just leave it to the
computer. E.g., fully automatized:

void Sporadic_Task::run(ms_t duration) {
  if (!quiet) {
    std::cout << "task " << id << " executes: " << program << std::endl;
  }
  // for extern processes, this is implicit
  if (!fork_processes) { run_program(program, program_args); }
}

This would save you six TAB strokes if you were to
disable automatic indentation! Why do it? Remember, in
special cases, you might still *change* the
indentation (using other keys than TAB). It is not
Python! But in 9*% of the cases, you don't want it so
why not automatize the common case?

If you want an "alternative TAB" for manual
indentation, why not bind say M-TAB, backtab (S-TAB),
or even write a defun that checks for a prefix
argument - if there is one, don't do
(semi-)automatized indentation, instead insert that
many number of whitespaces!

Like this:

    (defun tab-auto-or-manual (&optional spaces)
      (interactive "p")
      (if (> spaces 1) (insert-char ?\  spaces)
        (indent-for-tab-command) ))
    (global-set-key "\t" 'tab-auto-or-manual)

It is even more powerful than your idea because now
you can do `C-u C-u TAB' to get 4**2 = 16 whitespaces
and so on. (You can also use the variable
`c-basic-offset' that you mention but that is making
it less powerful.)

Of course, this is only if you are bound and
determined to do this with the TAB key. Otherwise, for
example `C-u C-u SPC' works just as well! Which is
what I do (sometimes), in the rare cases auto
indentation isn't what I want.

> In my `.emacs`, but for CMake files Emacs just
> indents the lines automatically according to its own
> rules, and TAB has no effect at all.

What is CMake? I don't get any apropos matches and
there isn't anything in the Emacs documentation
according to my razor-sharp tools for finding out.
But if it is something different (from C and C++)
altogether, it isn't strange that doing that
won't help. You need to examine the Emacs mode not for
the programming, but for the "cmake and CMakefile"
system, and set it there. To find out what TAB does,
hit `C-h k TAB' while in a buffer with that kind of
file. If you don't like what it does, you can change
that, of course.

-- 
underground experts united
http://user.it.uu.se/~embe8573




reply via email to

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