TAB goes crazy in C/C++ mode
Hi all, I'm not sure is it me (again) but with the recent pulls my TAB in C or C++ mode goes mad sometimes, especially if there are some unusual C or C++ constructs. Here is some example: --- #include <stdio.h> #include <some-lib.h> MAGIC_MACRO(X) class Foo : public Baz { private: int a; int b; <-- sometimes evil gets confused and will not allign this variable, but will put it on the begining public: }; --- When above happens, TAB no loner works (to align the code), unless I change the mode. Even worse, not every mode change will return TAB behavior: e.g. going to fundamental mode will do nothing, but if I go to python-mode, things are restored. Any idea what is going on? This bug is not always reproducible, making it quite hard to explain steps. My emacs is 24.2.1 (x86_64-redhat-linux-gnu) in daemon mode from terminal. PS: I'm seeing TAB is bind to evil-jump-forward so I assume this is more Evil bug than Emacs, as someone on Emacs list would already notice it. Thanks, Sanel
Sanel Zukan <[email protected]> writes:
I'm not sure is it me (again) but with the recent pulls my TAB in C or C++ mode goes mad sometimes, especially if there are some unusual C or C++ constructs.
Here is some example:
---
#include <stdio.h> #include <some-lib.h>
MAGIC_MACRO(X)
class Foo : public Baz { private: int a; int b; <-- sometimes evil gets confused and will not allign this variable, but will put it on the begining public: };
---
What do you mean by "align this variable"? In my Emacs TAB is bound to 'c-indent-line-or-region. Is this the function you expect?
When above happens, TAB no loner works (to align the code), unless I change the mode. behavior: e.g. going to fundamental mode will do nothing, but if I go to python-mode, things are restored.
Fundamental mode is special because it does not run any hooks. But it should be the only exception.
Any idea what is going on? This bug is not always reproducible, making it quite hard to explain steps.
No, I have no idea :(
My emacs is 24.2.1 (x86_64-redhat-linux-gnu) in daemon mode from terminal.
The only change I can think of is git:79ddbf9, which fixed a bug with terminal, keyboard and emacsclient. So you could try a state before that one.
PS: I'm seeing TAB is bind to evil-jump-forward so I assume this is more Evil bug than Emacs, as someone on Emacs list would already notice it.
Yes, but only in normal-state (in fact, C-i is bound to `evil-jump-forward`, which happens to be the same as TAB in terminal). In insert state TAB should be bound to whatever it is bound in your current mode (i.e. evil does not overwrite the binding in insert state). Best regards, Frank
participants (2)
-
Frank Fischer -
Sanel Zukan