Utiliser overwrite dans vim mais je voudrais un comportement différent des retours chariots

1

Donc, je mets du texte dans un domaine particulier dans vim ... entrez la description de l'image ici

J'utilise le mode REPLACE pour ne pas gâcher le «bord éloigné» du «rectangle» lorsque je tape. Ce serait bien si, lorsque j'appuyais sur entrer dans ce mode, mon curseur se retrouvait sur la ligne suivante sans affecter le reste de la ligne.

Mais malheureusement, quand j'appuie sur enter, une nouvelle ligne est insérée et je me retrouve avec

entrez la description de l'image ici

qui gâche le "rectangle" - quelqu'un a-t-il une idée sur la façon d'obtenir le comportement que je recherche?

Joe
la source
Vos retours chariot sont invisibles, mais ils sont encore des retours chariot , qui sont conçus pour déplacer le curseur au début de la ligne suivante. Ce que vous cherchez, c'est la touche "flèche bas".
Lèse majesté
Très bien, j'ai modifié le titre pour le rendre plus clair. Merci pour votre suggestion concernant la flèche vers le bas - mais dans mon exemple, la flèche vers le bas déplace simplement le curseur vers le bas, elle ne le déplace pas "vers le bas et jusqu'au début de la ligne suivante", ce qui est vraiment ce que je recherche. pour - j'espère que cela clarifie les choses ...
Joe
Je pensais que c'était peut-être ce que vous vouliez, mais cela semble être une caractéristique improbable. Cependant, il y a beaucoup d'extensions et de hacks pour Vim, alors peut-être que quelqu'un d'autre a trouvé un moyen de le faire.
Lèse majesté

Réponses:

3

Après avoir bricolé, je suis venu avec ce qui suit. C'est un peu kluge, mais cela semble fonctionner:

augroup ReplaceReturn
    autocmd!
    autocmd InsertEnter * if v:insertmode ==? 'r' | call s:RedefineReturn() | endif
augroup END

function! s:RedefineReturn()
    inoremap <cr> <down><c-o>0
    inoremap <silent> <esc> <esc>:call <SID>UndefineReturn()<CR>
endfunction

function! s:UndefineReturn()
    if maparg('<cr>', 'i') != ''
        iunmap <cr>
        iunmap <esc>
    endif
endfunction
Heptite
la source