fix(mark): do not restore view in op-pending mode (#20889)

This commit is contained in:
zeertzjq
2022-11-01 06:14:20 +08:00
committed by GitHub
parent bf3cbee630
commit 428ab6f24e
2 changed files with 17 additions and 1 deletions

View File

@@ -5697,6 +5697,10 @@ static void nv_gomark(cmdarg_T *cap)
{
int name;
MarkMove flags = jop_flags & JOP_VIEW ? kMarkSetView : 0; // flags for moving to the mark
if (cap->oap->op_type != OP_NOP) {
// When there is a pending operator, do not restore the view as this is usually unexpected.
flags = 0;
}
MarkMoveRes move_res = 0; // Result from moving to the mark
const bool old_KeyTyped = KeyTyped; // getting file may reset it

View File

@@ -330,7 +330,7 @@ describe('named marks view', function()
os.remove(file2)
end)
it('is restored', function()
it('is restored in normal mode but not op-pending mode', function()
local screen = Screen.new(5, 8)
screen:attach()
command("edit " .. file1)
@@ -358,6 +358,18 @@ describe('named marks view', function()
8 line |
|
]])
-- not in op-pending mode #20886
feed("ggj=`a")
screen:expect([[
1 line |
^2 line |
3 line |
4 line |
5 line |
6 line |
7 line |
|
]])
end)
it('is restored across files', function()