{"id":17801654,"url":"https://github.com/ubaldot/vim-poptools","last_synced_at":"2026-01-15T22:36:58.190Z","repository":{"id":255485927,"uuid":"852234209","full_name":"ubaldot/vim-poptools","owner":"ubaldot","description":"Exploit popups as much as you can!","archived":false,"fork":false,"pushed_at":"2025-03-15T21:25:48.000Z","size":4257,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T21:26:50.309Z","etag":null,"topics":["vim9","vim9-plugin"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ubaldot.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":"2024-09-04T13:10:17.000Z","updated_at":"2025-03-15T21:25:51.000Z","dependencies_parsed_at":"2024-10-27T12:53:22.565Z","dependency_job_id":"b8c21f73-f816-4046-bc25-65374c9be29d","html_url":"https://github.com/ubaldot/vim-poptools","commit_stats":null,"previous_names":["ubaldot/vim-lazy-find"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubaldot%2Fvim-poptools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubaldot%2Fvim-poptools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubaldot%2Fvim-poptools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ubaldot%2Fvim-poptools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ubaldot","download_url":"https://codeload.github.com/ubaldot/vim-poptools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246758277,"owners_count":20828919,"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":["vim9","vim9-plugin"],"created_at":"2024-10-27T12:39:08.857Z","updated_at":"2026-01-15T22:36:58.184Z","avatar_url":"https://github.com/ubaldot.png","language":"Vim Script","readme":"# vim-poptools\n\nExploit popups as much as you can!\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"/vim_poptools.gif\" width=\"75%\" height=\"75%\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\" style=\"font-size:38;\"\u003e\n* Vim-poptools *\n\u003c/p\u003e\n\nPoptools aims to boost your productivity by using popups for a variety of\ntasks—from finding files and directories to setting your favorite colorscheme.\n\nUnlike similar plugins such as [fzf][0] or [fuzzbox][1], Poptools\nkeeps things essential and runs external programs synchronously—which,\nhonestly, doesn’t bother me at all!\n\nConfiguration is extremely simple, and Poptools includes convenient features\nlike restoring your last search instantly or creating handy dashboards via the\n`:PopupIndex` command.\n\nAnd yes—you can search results both fuzzily or exactly.\n\n### Commands\n\nThe following is what you can search and show in popups.\nThe commands are self-explanatory:\n\n```\n:PoptoolsFindFile\n:PoptoolsFindFileInPath # Takes into account the setting of :h 'path'.\n:PoptoolsFindDir # Search from the current directory downwards\n:PoptoolsBuffers\n:PoptoolsRecentFiles\n:PoptoolsCmdHistory\n:PoptoolsKill # When something goes wrong, you can clear all the Poptools popups\n:PoptoolsColorscheme # The displayed colors depends on the value of :h 'background'\n:PoptoolsGrepInBuffer # Find pattern in the current buffer\n:PoptoolsGrep # External grep. Grep command is displayed.\n:PoptoolsVimgrep # Vimgrep, show results in the quickfix-list instead of a popup.\n:PoptoolsLastSearch # Show the last search results\n:PoptoolsIndex # Create your own dashboard, see `:h PoptoolsIndex`\n:PoptoolsReleaseNotes # Guess what?\n```\n\n... and if you are curious, the following is how I mapped them in my `.vimrc`:\n\n```\nnnoremap \u003cc-p\u003e \u003ccmd\u003ePoptoolsFindFile\u003ccr\u003e\u003ccr\u003e\nnnoremap \u003cc-p\u003el \u003ccmd\u003ePoptoolsLastSearch\u003ccr\u003e\nnnoremap \u003cc-tab\u003e \u003ccmd\u003ePoptoolsBuffers\u003ccr\u003e\nnnoremap \u003cc-p\u003eo \u003ccmd\u003ePoptoolsRecentFiles\u003ccr\u003e\n```\n## Configuration\n\nIf you don't like the default behavior, there is room for some customization.\nThe process is very easy. All you have to do is to set some entries in\nthe `g:poptools_config` dictionary.\n\nHowever, keep in mind that you may also change the plugin behavior by through\nVim the options `:h 'wildignore'`, `:h 'wildoptions'` and `:h 'path'`.\n\n### Preview window\n\nYou may not want the preview window in every case. For example, you want it\nwhen you _grep_ but not when you open recent files. If that is the case, do as\nit follows\n\n```\ng:poptools_config = {}\ng:poptools_config['preview_grep'] = true\ng:poptools_config['preview_recent_files'] = false,\n```\n\n### Syntax highlight in the preview window\n\nSyntax highlight in the preview window can be handy, but it may slow down the\nuser experience. You can avoid using syntax highlight in the preview window by\nsetting `g:poptools_config['preview_syntax'] = false`. This is useful in case\nyou are encountering troubles when using the preview window. The match are\nstill highlighted.\n\n\n### To fuzzy or not to fuzzy?\n\nYou can filter the results either in a fuzzy or in an exact fashion. You choose\nit by setting `g:poptools_config['fuzzy_search']` to `true` or to `false`.\n\nIt follows an example of configuration:\n\n```\ng:poptools_config = {}\ng:poptools_config['preview_syntax'] = false\ng:poptools_config['preview_recent_files'] = false\ng:poptools_config['fuzzy_search'] = false\n```\nTo see the whole list of keys allowed in the `g:poptools_config` dictionary,\ntake a look at `:h poptools.txt`.\n\n## Some notes on files/patterns search\n\n### `PoptoolsFindFile` and `PoptoolsFindInPath`\n\nThese commands take into account the setting of `:h 'wildignore'`,\n`:h 'wildoptions'` and `:h 'path'` options, so if you want to include/exclude\nsome search path, you must adjust such options.\n\nBy default, hidden files are excluded. If you want to find them, then you must\nadd `.` at the beginning of the search pattern, e.g. use `.git*` to get e.g.\n`.gitignore`.\n\nHidden files are searched in non-hidden folders. To find files in a hidden\nfolder, you must first `cd` into such a folder. For example, `cd ~/.vim`\nfollowed by `PopupFindFiles` will search files inside the `.vim` folder.\n\n### `PoptoolsGrep` and `PoptoolsVimgrep`\n\nThey use the internal `:h vimgrep` and the external `:h grep`. However, The\nuser interface is the same. The results appear both in the quickfix-list and in\nthe popup.\n\nBy default, the option `'grepprg'` is set, as it follows:\n\n```\n  # Windows\n  \u0026grepprg =\n    'powershell -NoProfile -ExecutionPolicy Bypass -Command '\n      .. '\"\u0026 {Set-Location -LiteralPath ''' .. search_dir .. '''; findstr /C:'''\n      .. what .. ''' /N /S ''' .. items .. '''}\"'\n\n  # *nix\n  \u0026grepprg = 'grep -nrH --include=\"{items}\" \"{what}\" {search_dir}'\n```\n\nwhere the values of `{what}`,`{files}` and `{search_dir}` are replaced by\nuser input.\n\nYou can also configure your own `'grepprg'` command through the keys `grep_cmd_win`\nand `grep_cmd_nix` of the `g:poptools_config` dictionary and you can use the\nplaceholders `{search_dir}, {items}` and `{what}`. For example, you could set\nthe following:\n\n```\ng:poptools_config['grep_cmd_win'] =\n                'powershell -NoProfile -ExecutionPolicy Bypass -Command '\n                .. '\"\u0026 { findstr /C:''' .. what .. ''' /N /S '''\n                .. fnamemodify($'{search_dir}\\{items}', ':p') .. ''' }\"'\n```\n\nIf you define your own `'grepprg'`, then the elements in the quickfix shall\ncontain the buffer number, the line number and the text. You can verify it by\nrunning `:echo getqflist()`. The returned dictionaries must have the keys\n`bufnr`, `lnum` and `text`. If that is not the case, then you need to set\n`'grepformat'` adequately. See `:h 'grepformat'` for more info.\n\n### `PopupFindDir`\n\nTo find hidden folders with `PopupFindDir` command, just add a `.` in front of\nthe search pattern, e.g. `.git*`. That will return e.g. `.git/, .github/`,\netc.\n\n\n[0]: https://github.com/junegunn/fzf.vim\n[1]: https://github.com/vim-fuzzbox/fuzzbox.vim\n","funding_links":[],"categories":["Vim Script","Fuzzy Finding"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubaldot%2Fvim-poptools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fubaldot%2Fvim-poptools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fubaldot%2Fvim-poptools/lists"}