Skip to content

Re-implement zoxide as a built-in plugin #865

@sxyazi

Description

@sxyazi

Please describe the problem you're trying to solve

The Zoxide implementation in Yazi has had some long-standing issues, and this FR attempts to address them:

  • Resolves how to use Multi-Tab & fzf, zoxide #859 - @fastfading: The new Zoxide implementation will detect if the user is using Zoxide for the first time (i.e., just installed Zoxide). At this point, since the Zoxide database is empty, an error will occur. The plugin should check for this error and send an error notification to the user via ya.notify().

  • Resolves jump zoxide appears to be broken #310 - @LeXofLeviafan: Reasons are the same as above.

  • Resolves Update zoxide DB from browsing #860 - @fdw: The new plugin will be able to add the directories the user browses to the zoxide database by providing the ability to further configure it in the user's init.lua, i.e. add this require("zoxide"):setup { update_db = true } to the init.lua file.

  • Resolves Support for zsh-z #757 - @hacker-DOM: By implementing Zoxide as a plugin, provide an example of integrating such external tools. When users need other tools besides Zoxide, they can easily copy the preset code and make some minor modifications to achieve their goals. Here, it is modifying zoxide to zsh-z command.

  • Resolves feat: add a way to use zoxide as an input field #654 - @diniamo: This FR will allow users to simply modify Lua to customize their workflow without needing to add code to Yazi codebase. This can help reduce my maintenance costs while avoiding Yazi bloat, as adding these specific workflows would require adding more configuration options to control different behaviors of the same functionality. This is also a barrier for new users getting started with Yazi configuration, as they would need to learn various configuration options and understand the subtle differences between each, which goes against Yazi's goal of providing a simple user experience.


Done by #881

Would you be willing to contribute this feature?

  • Yes, I'll give it a shot

Describe the solution you'd like

See above

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions