Markus, Marc, &c.,
On 31 January 2016 at 18:56, Markus Teich <markus.teich_AT_stusta.mhn.de> wrote:
> Marc André Tanner wrote:
>> The END-mapping was actually using text_line_lastchar not text_line_end. I
>> now added a new key action for text_line_end. The behaviour might still be
>> inconsistent (for example in vim's visual modes `$` seems to behave like
>> <End>) but at least it can now be configured via config.def.h.
>
> vim seems to be inconsistent here.
It's not that simple.
A subtle thing that vim does is that the notion of cursor is different
in normal and insert mode. In normal mode, the cursor is *on* a
character. In insert mode, the cursor is *before*, *after*, or
*between* characters. (A common advice to gvim users is to set the
cursor to a bar in insert mode and to a block in normal mode. This is
what happens in a lot of graphical applications if you hit <insert> in
a text field.)
Vim doesn't allow to be *on* the newline character. However, it is
possible to be *after* the last character of a line. Because of the
way the cursor is displayed (as a block), the cursor appears to be
*on* the newline character. The 'backspace' configuration variable
makes vim behave differently w.r.t. the newline character in insert
mode.
It's not so much an inconsistency as a poor documentation: the word
"cursor" to describe two distinct concepts. They are two different
things so it's expected that they behave differently.
Idea: modify `st` so it can change `cursorahape` dynamically, modify
`vis` to change the cursor on mode change.
Cheers,
--
______________
Raphaël Proust
Received on Mon Feb 01 2016 - 11:02:28 CET