I have to edit a C++ file at work whose indentation is so screwed up that any punctuation key I type ends up changing the indentation of the line I'm working on to something that is way out of line with the text right around it. For sanity's sake I have to
M-x set-variable c-syntactic-indentation nil
when I'm working on that file.
The
c-syntactic-indentation
variable does not start out buffer-local, meaning that for the sake of the one stupid file, I have turned off the very useful feature of syntactic indentation for every file I have open in that session. So, if you are ever going to set it temporarily, make sure you have this line in your .emacs file:
(make-variable-buffer-local 'c-syntactic-indentation)
While you're at it, don't you want a shortcut for the set-variable? I amused myself greatly this morning as I tried to think what shortcut I would assign this action to. The obvious mnemonics I polled with
C-h k
were taken: I have
C-c TAB
set to
indent-region
,
C-c ;
to
comment-region
, and
C-c {
set to a function to insert a skeleton class definition. What to do? I finally hit upon
C-c (
, and lo-and-behold I had already set that keystroke to toggle
c-syntactic-indentation
, sometime in the distant past! Here's the code:
(global-set-key "\C-c("
'(lambda ()
(interactive)
(setq c-syntactic-indentation (not c-syntactic-indentation))
(message "c-syntactic-indentation set to %s"
(if c-syntactic-indentation "t" "nil"))))
No comments:
Post a Comment