{"id":13411141,"url":"https://github.com/jvgrootveld/telescope-zoxide","last_synced_at":"2026-01-22T11:39:56.747Z","repository":{"id":40540048,"uuid":"352114714","full_name":"jvgrootveld/telescope-zoxide","owner":"jvgrootveld","description":"An extension for telescope.nvim that allows you operate zoxide within Neovim.","archived":false,"fork":false,"pushed_at":"2024-08-28T06:28:20.000Z","size":23,"stargazers_count":306,"open_issues_count":4,"forks_count":17,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-28T07:47:10.703Z","etag":null,"topics":["lua","neovim","nvim","nvim-plugin","nvim-telescope","zoxide"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jvgrootveld.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-27T15:59:56.000Z","updated_at":"2024-08-28T06:38:22.000Z","dependencies_parsed_at":"2024-01-03T03:29:29.495Z","dependency_job_id":"cb7a0a4f-f30b-43e1-a325-e80256634e8e","html_url":"https://github.com/jvgrootveld/telescope-zoxide","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/jvgrootveld/telescope-zoxide","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvgrootveld%2Ftelescope-zoxide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvgrootveld%2Ftelescope-zoxide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvgrootveld%2Ftelescope-zoxide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvgrootveld%2Ftelescope-zoxide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jvgrootveld","download_url":"https://codeload.github.com/jvgrootveld/telescope-zoxide/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jvgrootveld%2Ftelescope-zoxide/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28662243,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lua","neovim","nvim","nvim-plugin","nvim-telescope","zoxide"],"created_at":"2024-07-30T20:01:11.684Z","updated_at":"2026-01-22T11:39:56.728Z","avatar_url":"https://github.com/jvgrootveld.png","language":"Lua","funding_links":[],"categories":["Fuzzy Finder","Lua"],"sub_categories":["Markdown and LaTeX","Assembly"],"readme":"# Telescope Zoxide\n\nAn extension for [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) that allows you operate [zoxide](https://github.com/ajeetdsouza/zoxide) within Neovim.\n\n## Requirements\n\n[zoxide](https://github.com/ajeetdsouza/zoxide) is required to use this plugin.\n\n## Installation\n\n```vim\nPlug 'nvim-lua/popup.nvim'\nPlug 'nvim-lua/plenary.nvim'\nPlug 'nvim-telescope/telescope.nvim'\nPlug 'jvgrootveld/telescope-zoxide'\n```\n\n## Configuration\n\nYou can add, extend and update Telescope Zoxide config by using [Telescope's default configuration mechanism for extensions](https://github.com/nvim-telescope/telescope.nvim#telescope-setup-structure).\nAn example config:\n\n```lua\n-- Useful for easily creating commands\nlocal z_utils = require(\"telescope._extensions.zoxide.utils\")\n\nrequire('telescope').setup{\n  -- (other Telescope configuration...)\n  extensions = {\n    zoxide = {\n      prompt_title = \"[ Walking on the shoulders of TJ ]\",\n      mappings = {\n        default = {\n          after_action = function(selection)\n            print(\"Update to (\" .. selection.z_score .. \") \" .. selection.path)\n          end\n        },\n        [\"\u003cC-s\u003e\"] = {\n          before_action = function(selection) print(\"before C-s\") end,\n          action = function(selection)\n            vim.cmd.edit(selection.path)\n          end\n        },\n        -- Opens the selected entry in a new split\n        [\"\u003cC-q\u003e\"] = { action = z_utils.create_basic_command(\"split\") },\n      },\n    }\n  }\n}\n```\n\nYou can add new mappings and extend default mappings.\n_(Note: The mapping with the key 'default' is the mapping invoked on pressing `\u003ccr\u003e`)_.\nEvery keymapping must have an `action` function and supports the optional functions `before_action` and `after_action`.\n\nTip: If the action is a telescope picker, you should also set `keepinsert = true` to open it in insert mode. Else you can't directly type into the next telescope picker.\n\nAll action functions are called with the current `selection` object as parameter which contains the selected path and Zoxide score.\n\nTip: Make use of the supplied `z_utils.create_basic_command` helper function to easily invoke a vim command for the selected path.\n\n## Loading the extension\n\nYou can then load the extension by adding the following after your call to telescope's own `setup()` function:\n\n```lua\nrequire(\"telescope\").load_extension('zoxide')\n```\n\nLoading the extension will allow you to use the following functionality:\n\n### List\n\nWith Telescope command:\n\n```vim\n:Telescope zoxide list\n```\n\nIn Lua:\n\n```lua\nrequire(\"telescope\").extensions.zoxide.list({picker_opts})\n```\n\nYou can also bind the function to a key:\n\n```lua\nvim.keymap.set(\"n\", \"\u003cleader\u003ecd\", require(\"telescope\").extensions.zoxide.list)\n```\n\n## Full example\n\n```lua\nlocal t = require(\"telescope\")\nlocal z_utils = require(\"telescope._extensions.zoxide.utils\")\n\n-- Configure the extension\nt.setup({\n  extensions = {\n    zoxide = {\n      prompt_title = \"[ Walking on the shoulders of TJ ]\",\n      mappings = {\n        default = {\n          after_action = function(selection)\n            print(\"Update to (\" .. selection.z_score .. \") \" .. selection.path)\n          end\n        },\n        [\"\u003cC-s\u003e\"] = {\n          before_action = function(selection) print(\"before C-s\") end,\n          action = function(selection)\n            vim.cmd.edit(selection.path)\n          end\n        },\n        [\"\u003cC-q\u003e\"] = { action = z_utils.create_basic_command(\"split\") },\n      },\n    },\n  },\n})\n\n-- Load the extension\nt.load_extension('zoxide')\n\n-- Add a mapping\nvim.keymap.set(\"n\", \"\u003cleader\u003ecd\", t.extensions.zoxide.list)\n```\n\n## Default config\n\n```lua\n{\n  prompt_title = \"[ Zoxide List ]\",\n\n  -- Zoxide list command with score\n  list_command = \"zoxide query -ls\",\n  mappings = {\n    default = {\n      action = function(selection)\n        vim.cmd.cd(selection.path)\n      end,\n      after_action = function(selection)\n        vim.notify(\"Directory changed to \" .. selection.path)\n      end,\n    },\n    [\"\u003cC-s\u003e\"] = { action = z_utils.create_basic_command(\"split\") },\n    [\"\u003cC-v\u003e\"] = { action = z_utils.create_basic_command(\"vsplit\") },\n    [\"\u003cC-e\u003e\"] = { action = z_utils.create_basic_command(\"edit\") },\n    [\"\u003cC-f\u003e\"] = {\n      keepinsert = true,\n      action = function(selection)\n        builtin.find_files({ cwd = selection.path })\n      end,\n    },\n    [\"\u003cC-t\u003e\"] = {\n      action = function(selection)\n        vim.cmd.tcd(selection.path)\n      end,\n    },\n  }\n}\n```\n\n## Default mappings\n\n| Action  | Description                                          | Command executed                                 |\n| ------- | ---------------------------------------------------- | ------------------------------------------------ |\n| `\u003cCR\u003e`  | Change current directory to selection                | `cd \u003cpath\u003e`                                      |\n| `\u003cC-t\u003e` | Change current tab's directory to selection          | `tcd \u003cpath\u003e`                                     |\n| `\u003cC-s\u003e` | Open selection in a split                            | `split \u003cpath\u003e`                                   |\n| `\u003cC-v\u003e` | Open selection in a vertical split                   | `vsplit \u003cpath\u003e`                                  |\n| `\u003cC-e\u003e` | Open selection in current window                     | `edit \u003cpath\u003e`                                    |\n| `\u003cC-f\u003e` | Open selection in telescope's `builtin.find_files`   | `builtin.find_files({ cwd = selection.path })`   |\n\n## Extensions\n\n### Open Selection in Telescope File Browser\n\nThis action requires installing the [Telescope file browser extension](https://github.com/nvim-telescope/telescope-file-browser.nvim). You can register this mapping by adding the following to your config:\n\n```lua\n{\n  mappings = {\n    [\"\u003cC-b\u003e\"] = {\n      keepinsert = true,\n      action = function(selection)\n        require(\"telescope\").extensions.file_browser.file_browser({ cwd = selection.path })\n      end\n    },\n  }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjvgrootveld%2Ftelescope-zoxide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjvgrootveld%2Ftelescope-zoxide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjvgrootveld%2Ftelescope-zoxide/lists"}