Re: [dev] [vis] text_line_end() in insert mode

From: Raphaël Proust <>
Date: Mon, 1 Feb 2016 10:02:28 +0000

Markus, Marc, &c.,

On 31 January 2016 at 18:56, Markus Teich <> 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

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.

Raphaël Proust
Received on Mon Feb 01 2016 - 11:02:28 CET

This archive was generated by hypermail 2.3.0 : Mon Feb 01 2016 - 11:12:10 CET