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 '("%e" "-" mode-line-mule-info mode-line-client mode-line-modified mode-line-remote mode-line-frame-identification mode-line-buffer-identification " " mode-line-position (vc-mode ("" vc-mode " ")) global-mode-string mode-line-modes (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. -- Vegard