Feature request: put the mode indicator more on the left

Vegard Øye vegard_oye at hotmail.com
Wed Jun 22 21:56:50 CEST 2011

On 2011-06-21 16:22 +0200, Alan Schmitt wrote:

> I see that the mode indicator (<V>, <I>, etc) is the last thing on
> the right of the status bar. Unfortunately, when many minor modes
> are loaded (typically when doing some latex), the information is not
> visible. Is there a way to put the mode indicator more on the left?

Viper (and Evil) puts the indicator in the variable
`global-mode-string', which is included in `mode-line-format'.
By default, `global-mode-string' occurs at the end of the mode line.
Thus, one way to move the indicator is to reorder `mode-line-format':

    (setq-default mode-line-format
                    "   "
                    (vc-mode ("" vc-mode " "))
                    (which-func-mode ("" which-func-format "--"))

These changes may be shadowed by a buffer-local value, however.
That is why `global-mode-string' is used instead of inserting the
indicator directly: since `global-mode-string' is a standard variable,
even custom values of `mode-line-format' are likely to contain it.

Still, I see your point. I'm unsure of what would be the most robust
way of implementing it, though.

> As a related question, is it possible to change the cursor depending
> on the mode?

If you just want to customize the /color/ of Viper's cursors, you can
set the variables `viper-vi-state-cursor-color' (for vi state),
`viper-insert-state-cursor-color' (for Insert state), etc.
If you want to change the cursor's /type/, you'll have to use the
state hooks like Tim explained.

In Evil, you can change both the type and color with a single variable.


More information about the implementations-list mailing list