VSCodeVim / VSCodeVim/Vim

keep jumplist under tab / editor groups

Open
#8,914 2 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
15.2k
Forks
1.5k
Avg merge
3d 18h
Merged PRs (30d)
6

Description

Is your feature request related to a problem? Please describe.

Vim jumplist (CTRL-O/CTRL-I) is great, I use it all the time. One frustration I get when using it in vscode is that it moves my cursor to other text editors that is open. This gets especially difficult when you have lot of tabs and editor groups open. Though I try to keep it to a small amount, I easily get around two editor groups (vsplits), each having 3~4 tabs.

As an example, say I want to keep focus on the left editor group, and keep the right group for reference files. However, by just referencing a file in the other group tangles the jump list, and moves my cursor to the right (or back at the left) as I type <CTRL-O>. This is not what happens in vim, where each window keeps its own jumplist. Splitting the window does not move the cursor around, and you get to keep focus on the current window.

My usage of jumplist was to jump inside a single file, or among different buffers(files) that was open in the window, typically by jumping to definitions and coming back.

Describe the solution you'd like

As stated above, I would like to have jumplist for each text editors in vscode, so I can have my cursor solely on that editor when I press CTRL-O/CTRL-I. If that breaks the current user experience, we can come up with a configuration to control the scope of the jumplist.

Describe alternatives you've considered

I don't know how we should organize the jumplist with the Tabs / Editor Groups problem, as the window UI for vscode is different from vim. In vim tab is the largest group which contains splits, so you have multiple split windows on a screen, but it all disappears when you go into another tab. Here tab represents the screen of windows you can work on.
In vscode, tab is contained in the editor group(split), so you don't lose the information on screen when you move to another tab, at least the ones in the other editor group.

As this is a fundamental difference between vim and vscode, I imagine it would have some different behaviors/experience , but for now I can't come up with a solution for it.

Additional context

Here is a screenshot of Vim, having different jumplist for each window.

Screenshot1 - jumplist of left window Screenshot 2024-03-01 at 2 47 57 PM
Screenshot2 - jumplist of right window Screenshot 2024-03-01 at 2 48 08 PM

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No implementation files, tests, or entry points are named. Start by locating the jumplist handling and how editor groups and tabs are represented, then clarify the intended scope and behavior before determining what tests would define separate jumplists.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vscode
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.