{"id":13898394,"url":"https://github.com/benwainwright/fzf-project","last_synced_at":"2025-09-19T10:51:40.406Z","repository":{"id":45212971,"uuid":"186257369","full_name":"benwainwright/fzf-project","owner":"benwainwright","description":"A vim plugin to make project switching easier using fzf.vim","archived":false,"fork":false,"pushed_at":"2024-10-10T21:15:22.000Z","size":1016,"stargazers_count":48,"open_issues_count":1,"forks_count":11,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-06T21:05:17.265Z","etag":null,"topics":["fzf","plugin","switch","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","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/benwainwright.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,"zenodo":null}},"created_at":"2019-05-12T13:17:55.000Z","updated_at":"2025-04-01T07:47:03.000Z","dependencies_parsed_at":"2024-01-14T15:31:57.189Z","dependency_job_id":"74a0bda8-9820-46e7-b84a-fa5e2b7257cf","html_url":"https://github.com/benwainwright/fzf-project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwainwright%2Ffzf-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwainwright%2Ffzf-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwainwright%2Ffzf-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benwainwright%2Ffzf-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benwainwright","download_url":"https://codeload.github.com/benwainwright/fzf-project/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252769396,"owners_count":21801376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["fzf","plugin","switch","vim"],"created_at":"2024-08-06T18:04:16.534Z","updated_at":"2025-09-19T10:51:40.313Z","avatar_url":"https://github.com/benwainwright.png","language":"Vim Script","funding_links":[],"categories":["Vim Script"],"sub_categories":[],"readme":"# fzf-project\n\nThis plugin provides an easy way of switching between project directories\nindexed from a specified workspace folder or folders. It's based on an idea I\noriginally stole from [kieran-ohara](https://github.com/kieran-ohara)'s\ndotfiles.\n\n![Screen Capture](./doc/images/fzf-project.gif)\n\n## Install\n\n#### Install via Plug\n\n```vim\nPlug 'junegunn/fzf.vim' \"requirement from benwainwright/fzf-project\nPlug 'tpope/vim-fugitive' \"requirement from benwainwright/fzf-project\nPlug 'benwainwright/fzf-project'\n```\n\n#### Install via Vundle\n\n```vim\nPlugin 'junegunn/fzf.vim' \"requirement from benwainwright/fzf-project\nPlugin 'tpope/vim-fugitive' \"requirement from benwainwright/fzf-project\nPlugin 'benwainwright/fzf-project'\n```\n\n## Usage\n\nRunning `FzfSwitchProject` in command mode will produce a list of folders from\nwithin your workspace folders. When you select a project, the working directory\nis changed and you are presented with a fzf list of files to switch to.\n\n## AutoRooting\n\nInstalling `FzfSwitchProject` will automatically `cd` to the root directory of\nany given project when you open a file. It does this by recursively locating the\nnearest `.git` folder in the directory hierarchy. For this reason, is\nrecommended to use `git` with this plugin\n\n## Configure\n\n```vim\nlet g:fzfSwitchProjectWorkspaces = [ '~/workspace1', '~/workspace2' ]\n```\n\nAutomatically list projects in the above folders\n\n```vim\nlet g:fzfSwitchProjectProjects = [ '~/folder1', '~/folder2' ]\n```\n\nAdd individual folders to the project list (I use it for my\ndotfiles folder)\n\n\n```vim\nlet g:fzfSwitchProjectProjectDepth = 1 \" default\n```\n\nSet the project folder depth. When this is set to 1 (the default), only the _immediate children_ of workspace folders are considered project folders. If it is set to a number greater than 1, then the project finder will recurse that many times to find project folders. E.g. if it is set to 2, the grand children of workspace folders are considered project folders, and if set to 3, the great-grandchildren.\n\nNote, that if during recursion any folder is found to contain a \".git\" folder (and is therefore a git project), that folder is automatically considered a project folder and recursion will not continue.\n\nIf this setting is set to the string 'infinite' (or indeed any value other than a number greater than 0), recursion continues infinitely until exhaustion or a `.git` project is found.\n\n```vim\nlet g:fzfSwitchProjectFindFilesCommand = 'git ls-files --others --exclude-standard --cached' \" default\n```\n\nCommand that is executed to get a list of all the files in a given project\n\n```vim\nlet g:fzfSwitchProjectAlwaysChooseFile = 0\n```\n\nDon't automatically open a file picker once project is selected\n\n```vim\nlet g:fzfSwitchProjectCloseOpenedBuffers = 0\n```\n\nSet this to 1 if you want to close and delete all opened buffers after switching to a different project, it will only close and delete opened buffers if all updated buffers are saved.\n\n## Commands\n\n- `FzfSwitchProject` - open project switcher\n- `FzfChooseProjectFile` - switch file within project\n\n## Dependencies\n\n- [fzf.vim](https://github.com/junegunn/fzf.vim)\n- [fugitive](https://github.com/tpope/vim-fugitive)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenwainwright%2Ffzf-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenwainwright%2Ffzf-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenwainwright%2Ffzf-project/lists"}