Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

easymotion vim #4930

Open
1 task done
jjhiggz opened this issue Mar 15, 2023 · 28 comments
Open
1 task done

easymotion vim #4930

jjhiggz opened this issue Mar 15, 2023 · 28 comments
Labels
enhancement [core label] vim

Comments

@jjhiggz
Copy link

jjhiggz commented Mar 15, 2023

Check for existing issues

  • Completed

Describe the feature

In VSCode's vim emulation you have an easymotion mode that allows you to type in

<leader><leader>motion

Then instead of doing that motion regularly, it will pull up easymotion which works like this

If applicable, add mockups / screenshots to help present your vision of the feature

https://www.loom.com/share/65f7ff4745df4f85bc1cd3ca51afdf83

@jjhiggz jjhiggz added enhancement [core label] triage labels Mar 15, 2023
@JosephTLyons JosephTLyons added vim and removed triage labels Mar 16, 2023
@EdAyers
Copy link

EdAyers commented Mar 16, 2023

keen for this outside of vim mode too

@clo4
Copy link
Contributor

clo4 commented Mar 18, 2023

@JosephTLyons JosephTLyons transferred this issue from zed-industries/community Jan 24, 2024
@akasuv
Copy link

akasuv commented Apr 7, 2024

A must need!

@baldwindavid
Copy link
Contributor

Related: Helix editor just added something similar based upon Amp's "jump mode" in helix-editor/helix#8875. I tend to agree with the reasoning behind this implementation...

While testing that PR we made the following observations:

  • character based jumps (which require a character before tying a label) don't really hold their water, you can use f for simple cases and / (which we want to improve further) for complex cases. Compared to a jumpmode these commands work with multicursors.
  • word base jumps can be useful for quickly repositioning the primary cursor.
  • a simple implementation like in AMP without dimming, color changes and complex letter assignment based on distance, ... was not only a lot simpler to implement but also more predictable/less disruptive

@lucasvfventura
Copy link

Please consider the vim leap, other seem to mention it as well, #4934 (comment)

@akasuv
Copy link

akasuv commented Apr 29, 2024

hop.nvim is another good reference.

@Aur0nd
Copy link

Aur0nd commented May 4, 2024

Personally if I see this one implemented I'm making the tool my main editor

@alex35mil
Copy link

I tried all the popular jump plugins and settled on pounce.nvim.

In contrast with label-based options, it allows to type a target word and do the jump. I find it more natural as I don't need to read into random chars but immediately start typing as I already know the word.

@scripness
Copy link

I tried all the popular jump plugins and settled on pounce.nvim.

In contrast with label-based options, it allows to type a target word and do the jump. I find it more natural as I don't need to read into random chars but immediately start typing as I already know the word.

How did you manage to install this plugin into Zed?

@smhd001
Copy link

smhd001 commented Sep 18, 2024

flash.nvim is another good reference with many nice features, including Treesitter integration.

@fourcolors
Copy link

I would love to see this, it's my top overall plugin for VIM https://github.com/easymotion/vim-easymotion

One thing I like is the ability to jump between buffers in a split view. This feature would be 🔥

@TheKoTech
Copy link

TheKoTech commented Sep 24, 2024

Maybe this could be an extension instead of a built-in fearure? This way people could add other similar vim plugins, choose what they want

@juninaba
Copy link

If I can use easymotion, I can fully switch to Zed!

@ultrakorne
Copy link

I am trying to replicate my setup in zed from vscode before trying to switch, and i hit this.

@brandonpollack23

This comment was marked as spam.

@mati865
Copy link

mati865 commented Oct 30, 2024

Intellij plugin AceJump is another great example: https://plugins.jetbrains.com/plugin/7086-acejump

@djmango
Copy link

djmango commented Nov 11, 2024

Is this possible to add via an extension? Would prefer core ideally but I'd be happy to look into writing a plugin

@baldwindavid
Copy link
Contributor

@djmango Zed extensions can currently only add languages, themes, and slash commands (https://zed.dev/docs/extensions/developing-extensions)

Note that a PR just got closed the other day with some notes on this topic... #12106 (comment)

@djmango
Copy link

djmango commented Nov 12, 2024

That's really too bad - honestly might fork and merge myself, it's super helpful. Thanks for the link!

@aayio
Copy link

aayio commented Nov 12, 2024

@djmango Zed extensions can currently only add languages, themes, and slash commands (https://zed.dev/docs/extensions/developing-extensions)

Note that a PR just got closed the other day with some notes on this topic... #12106 (comment)

Devastated, was really anticipating this feature

@machin3io
Copy link

That's really too bad - honestly might fork and merge myself, it's super helpful. Thanks for the link!

Let us know if you make it public please.

@babyccino
Copy link
Contributor

That's really too bad - honestly might fork and merge myself, it's super helpful. Thanks for the link!

Let us know if you make it public please.

My branch is up to date and building. If you follow the development guide you can build from source

@mrityu4
Copy link

mrityu4 commented Nov 17, 2024

I had been looking forward to the release with the PR for months. It was closed a few months ago, and now it can't be merged. Really devasted.

@TheKoTech
Copy link

It's totally understandable why the MR was closed. I agree that this feature should be an extension rather than built-in

@djmango
Copy link

djmango commented Nov 17, 2024 via email

@TheKoTech
Copy link

TheKoTech commented Nov 18, 2024

It's not supported yet, but I assume the extensibility will grow over time

If this feature is not a core part of Vim, it shouldn't be a part of the IDE either.

@dmsoares
Copy link

dmsoares commented Jan 9, 2025

Easymotion has become one of my favorite ways of navigating inside the buffer :/ looking at a char and being able to jump there "immediately" is amazing!

Any plans to bring the extensibility required to build an extension like this? I'm totally ignorant of Zed's codebase, but if anyone has a plan on how to get there I would be glad to help!

@styx
Copy link

styx commented Jan 22, 2025

@dmsoares as for now you can try #22793. It's far from perfect as there is no highlight, but looks like there is no chance to have a full leap/easymotion/etc any time soon (until advanced plugins support will be implemented).

see #12106 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement [core label] vim
Projects
None yet
Development

No branches or pull requests