mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
patch 8.2.3280: 'virtualedit' local to buffer is not the best solution
Problem: 'virtualedit' local to buffer is not the best solution. Solution: Make it window-local. (Gary Johnson, closes #8685)
This commit is contained in:
committed by
Bram Moolenaar
parent
2c70711e3f
commit
51ad850f5f
10
src/ops.c
10
src/ops.c
@@ -1475,21 +1475,21 @@ op_insert(oparg_T *oap, long count1)
|
||||
// already disabled, but still need it when calling
|
||||
// coladvance_force().
|
||||
// coladvance_force() uses get_ve_flags() to get the 'virtualedit'
|
||||
// state for the current buffer. To override that state, we need to
|
||||
// set the buffer-local value of ve_flags rather than the global value.
|
||||
// state for the current window. To override that state, we need to
|
||||
// set the window-local value of ve_flags rather than the global value.
|
||||
if (curwin->w_cursor.coladd > 0)
|
||||
{
|
||||
int old_ve_flags = curbuf->b_ve_flags;
|
||||
int old_ve_flags = curwin->w_ve_flags;
|
||||
|
||||
if (u_save_cursor() == FAIL)
|
||||
return;
|
||||
|
||||
curbuf->b_ve_flags = VE_ALL;
|
||||
curwin->w_ve_flags = VE_ALL;
|
||||
coladvance_force(oap->op_type == OP_APPEND
|
||||
? oap->end_vcol + 1 : getviscol());
|
||||
if (oap->op_type == OP_APPEND)
|
||||
--curwin->w_cursor.col;
|
||||
curbuf->b_ve_flags = old_ve_flags;
|
||||
curwin->w_ve_flags = old_ve_flags;
|
||||
}
|
||||
// Get the info about the block before entering the text
|
||||
block_prep(oap, &bd, oap->start.lnum, TRUE);
|
||||
|
Reference in New Issue
Block a user