Markus, Marc, &c., On 31 January 2016 at 18:56, Markus Teich <markus.te...@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