Vim: the jump list is wrong

Created on 11 May 2017  路  13Comments  路  Source: VSCodeVim/Vim

  • Click thumbs-up 馃憤 on this issue if you want it!
  • Click confused 馃槙 on this issue if not having it makes VSCodeVim unusable.

The VSCodeVim team prioritizes issues based on reaction count.


* Is this a BUG REPORT *:

Environment:

  • VSCode Version: 1.12.1
  • VsCodeVim Version: 0.7.1
  • OS: win 10

What happened:
put cursor on a function call, the gd to the definition of the function, kk move cursor up two line,
press ctrl-o to go back to the function call

What did you expect to happen:
the cursor goes back to the previous function call
How to reproduce it:
as described above

I think the main problem is that the jump-motions is not correctly handled,

jump-motions
A "jump" is one of the following commands: "'"', "`", "G", "/", "?", "n",
"N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and
the commands that start editing a new file. If you make the cursor "jump"
with one of these commands, the position of the cursor before the jump is
remembered. You can return to that position with the "''"' and "``" command,
unless the line containing that position was changed or deleted.

aremotion kinfeature

Most helpful comment

@haolly Yes neovim integration will solve this issue completely.

All 13 comments

I think that's because we don't really handle jump lists extensively. We merely bind ctrl+o to the vim command workbench.action.navigateBack.

@Chillee so, is there any plane to improve it ?

I've been meaning to take a look at it, but it's not a top priority for me. At least for my use case, the current ctrl+o works well enough most of the time.

@Chillee does it help this issue when Neovim is integrated ?

@haolly Yes neovim integration will solve this issue completely.

@Chillee I just tested on my mac, with neovim integrated, still does not work properly

@haolly it's not merged yet.

https://github.com/VSCodeVim/Vim/pull/1897 is the pr you want to be following.

This is keeping me from using VSCode as well. Without the vim plugin VSCode handles this correctly, it's only when the plugin is enabled that it stops working.

I did some research and I think this is due to this line in VSCode - I think all VSCodeVim actions are interpreted as API actions by VSCode and are put on the history stack. Anyone knows where the actions are dispatched in VSCodeVim and if it's possible to change them to be non-api?

I noticed that this is only an issue for 'j' and 'k', other movements like 'l', 'h', 'w', or 'b' do not affect the jump history. #2461 is the same issue.

Is there any update to this issue? Was about to switch to VS Code, but without jump lists working properly it is unusable...

Guys, any plan for handling this? Really annoying

This is fixed in a branch where I am working on implementing our own proper jump list. See my comments here: https://github.com/VSCodeVim/Vim/issues/1933

I think @shawnaxsom has handled this issue in the PR linked above. Thanks!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

edwintorok picture edwintorok  路  3Comments

typeoneerror picture typeoneerror  路  3Comments

waltiam picture waltiam  路  3Comments

triztian picture triztian  路  3Comments

AndersenJ picture AndersenJ  路  3Comments