Esse comportamento depende da opção 'selection'
. Você parece ter o (não padrão) exclusive
; com inclusive
, a seleção inclui o caractere sob o cursor. Então alternar essa opção seria uma solução.
Se você quiser mantê-lo, pode fazer sua seleção para trás e usar o$
ou ol
para voltar à direita e estendê-lo pelo caractere ausente.
Ou, :set virtualedit=onemore
. Isso permitirá que você vá além do último caractere na linha e comece a selecionar a partir dele: lv...
Além disso, os objetos de texto "internos" disponíveis muitas vezes fazem desaparecer a necessidade de uma seleção explícita. Por exemplo, viw
selecionará a última palavra inteira.