{"id":13479687,"url":"https://github.com/skywind3000/vim-quickui","last_synced_at":"2025-05-14T20:08:50.134Z","repository":{"id":41094935,"uuid":"229702507","full_name":"skywind3000/vim-quickui","owner":"skywind3000","description":"The missing UI extensions for Vim 9 (and NeoVim) !! :sunglasses:","archived":false,"fork":false,"pushed_at":"2024-12-30T07:04:59.000Z","size":3620,"stargazers_count":1128,"open_issues_count":41,"forks_count":36,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-06T12:05:45.408Z","etag":null,"topics":["borland","command-line","gui","neovim","neovim-plugin","neovim-plugins","popup","productive","quickui","terminal","text-editor","tui","ui-components","vim","vim-plugin","vim-plugins","vim-quickui","vim9","vim9-plugin","vim9-script"],"latest_commit_sha":null,"homepage":"https://www.vim.org/scripts/script.php?script_id=5845","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/skywind3000.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":"2019-12-23T07:44:08.000Z","updated_at":"2025-04-01T16:04:54.000Z","dependencies_parsed_at":"2024-01-16T03:45:40.240Z","dependency_job_id":"67ef54a2-c9f8-4dc8-804b-e7ca8652cabd","html_url":"https://github.com/skywind3000/vim-quickui","commit_stats":{"total_commits":243,"total_committers":13,"mean_commits":"18.692307692307693","dds":0.06995884773662553,"last_synced_commit":"fb89512748b6e0e242afdced3e90bc5d422fe20c"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skywind3000%2Fvim-quickui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skywind3000%2Fvim-quickui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skywind3000%2Fvim-quickui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skywind3000%2Fvim-quickui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skywind3000","download_url":"https://codeload.github.com/skywind3000/vim-quickui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248732486,"owners_count":21152852,"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":["borland","command-line","gui","neovim","neovim-plugin","neovim-plugins","popup","productive","quickui","terminal","text-editor","tui","ui-components","vim","vim-plugin","vim-plugins","vim-quickui","vim9","vim9-plugin","vim9-script"],"created_at":"2024-07-31T16:02:21.418Z","updated_at":"2025-04-13T15:10:49.837Z","avatar_url":"https://github.com/skywind3000.png","language":"Vim Script","readme":"# What Is It ?\r\n\r\nThere are many keymaps defined in my `.vimrc`. Getting tired from checking `.vimrc` time to time when I forget some, based on the latest `+popup` feature (vim 8.2), I created this `vim-quickui` plugin to introduce some basic UI components to enrich vim's interactive experience:\r\n\r\n- Well designed and carefully colored Borland/Turbo C++ flavor ui system combined with vim's productivity.\r\n- Can be accessed by keyboard only while mouse is also supported.\r\n- Navigate with the usual Vim keys like `h/j/k/l`, confirm with `ENTER/SPACE` and cancel with `ESC/Ctrl+[`.\r\n- `Tip` for each entry can display in the cmdline when you are moving the cursor around.\r\n- Available widgets: [menu](#menu), [listbox](#listbox), [inputbox](#inputbox), [textbox](#textbox).. (coming soon)\r\n- Fully customizable, including color scheme and borders.\r\n- Corresponding experience in both `Vim` and `NeoVim`.\r\n- Pure vim-script, `+python` is not required.\r\n- No longer have to be afraid to forget keymaps anymore.\r\n\r\nJust see this GIF demonstration below:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/screenshot.gif)\r\n\r\nTrying to share my configuration to my friends, I found that they did't have patience to remember all the keymaps in my vimrc, but text ui is quite acceptable for them.\r\n\r\n# Content \r\n\r\n\u003c!-- TOC --\u003e\r\n\r\n- [What Is It ?](#what-is-it-)\r\n- [Content](#content)\r\n  - [Relative Projects](#relative-projects)\r\n  - [Requirements](#requirements)\r\n  - [Installation](#installation)\r\n  - [Gallery Screenshot](#gallery-screenshot)\r\n    - [Menu](#menu)\r\n    - [Listbox](#listbox)\r\n    - [Inputbox](#inputbox)\r\n    - [Context menu](#context-menu)\r\n    - [Textbox](#textbox)\r\n    - [Preview window](#preview-window)\r\n    - [Terminal](#terminal)\r\n    - [Confirm dialog](#confirm-dialog)\r\n  - [User Manual](#user-manual)\r\n  - [Who Am I ?](#who-am-i-)\r\n  - [Credit](#credit)\r\n\r\n\u003c!-- /TOC --\u003e\r\n\r\n## Relative Projects\r\n\r\nPlugins powered by QuickUI:\r\n\r\n- [vim-navigator](https://github.com/skywind3000/vim-navigator): Navigate your commands easily.\r\n\r\n## Requirements\r\n\r\n- Vim: 8.2 or later.\r\n- NeoVim: 0.4.0 or later.\r\n\r\n## Installation\r\n\r\n    Plug 'skywind3000/vim-quickui'\r\n\r\nFor more information, please see the [User Manual](MANUAL.md).\r\n\r\n## Gallery Screenshot\r\n\r\n### Menu\r\n\r\nDisplay a dropdown menubar at top of the screen, use `hjkl` or mouse to navigate:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/mainmenu.png)\r\n\r\nCustomizable border style:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/border2.png)\r\n\r\nMenu color schemes:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/colors.png)\r\n\r\nSee: [Menu help](MANUAL.md#menu).\r\n\r\n### Listbox\r\n\r\nWhen you have hundres of items to deal with, menu is not enough to hold them. Then you will need a listbox.\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/listbox.png)\r\n\r\nIt has scroll bar, content can be scrolled by keyboard or mouse wheel. You can search items with `/` or `?` command.\r\n\r\nIt can be used to select buffers or functions in current file:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/list-function.png)\r\n\r\nThe cursor will stay in the current function initially. Navigate and press enter to jump to the selected function. \r\n\r\nSee: [Listbox help](MANUAL.md#listbox).\r\n\r\n### Inputbox\r\n\r\nPrompt user to input a string in a TUI box:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/input1.png)\r\n\r\nCould be used as a drop-in replacement of `input()` function.\r\n\r\nSee: [Input box help](MANUAL.md#inputbox).\r\n\r\n### Context menu\r\n\r\nContext menu imitates Windows context menu (triggered by your mouse right button), which will display around the cursor:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/context.png)\r\n\r\nIt is usually used to present some commands that will do something with source code in the current line.\r\n\r\nThe border can be changed too:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/context2.png)\r\n\r\nBecause some terminals or fonts cannot display unicode borders correctly, so QuickUI choose ascii border characters by default. But you can change it as you like.\r\n\r\nSee: [Context menu help](MANUAL.md#context-menu).\r\n\r\n### Textbox\r\n\r\nTextbox is used to display arbitrary text in a popup window.\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/textbox.png)\r\n\r\nDisplay vim help with syntax highlighting in the `textbox`:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/display-help.png)\r\n\r\nWith `textbox`, you can read the help text at anytime in a popup, without creating a new split window.\r\n\r\nDisplay vim messages:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/messages.png)\r\n\r\nNavigating the messages with `HJKL` or `PageUp/PageDown` is much more convenient than using `:messages`.\r\n\r\nSee: [Text box help](MANUAL.md#textbox).\r\n\r\n### Preview window\r\n\r\nPreview window is used to replace traditional `pedit` command and can be used to display certain file in a small popup window around your cursor:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/preview.png)\r\n\r\nSometimes I just want a glimpse to the definition of the current word under cursor without actually open that file, the `preview` window is much helpful for this. \r\n\r\nUse it to preview quickfix result:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/quickfix.png)\r\n\r\nIf you have many items in the quickfix window, instead of open them one by one, you are able to press `p` in the quickfix window and preview them in the popup.\r\n\r\nSee: [Preview window help](MANUAL.md#preview-window).\r\n\r\n### Terminal\r\n\r\nThe `terminal` widget can allow you open a terminal in the popup window:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/terminal.png)\r\n\r\nThis feature require vim `8.2.200` (nvim `0.4.0`) or later, it enables you to run various tui programs in a dialog window.\r\n\r\nSee: [Terminal help](MANUAL.md#terminal).\r\n\r\n### Confirm dialog\r\n\r\nThis widget offers user a dialog, from which a choice can be made:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/confirm1.png)\r\n\r\nIt returns the number of the choice. For the first choice, this is 1.\r\n\r\nSee: [Confirm dialog help](MANUAL.md#confirm-dialog).\r\n\r\n\r\n## User Manual\r\n\r\nTo get started, please visit:\r\n\r\n- [User Manual](MANUAL.md)\r\n\r\nFor more examples, see [my config](test/menu_example.vim).\r\n\r\n\r\n## Who Am I ?\r\n\r\nMy name is Lin Wei, and I am a strong advocate of open source and a passionate vim user. I embarked on my programming journey in the early 1990s. During that time, Borland’s Turbo Pascal/C++ served as the prevailing IDE, and I fondly reminisce about those days. After returning home from school, I would eagerly power on my computer, launch Turbo C++ 3.1, and delve into the world of creating games in MS-DOS.\r\n\r\nI even imitated Turbo C++ and made my own editor when I moved to Watcom C++:\r\n\r\n![](https://skywind3000.github.io/images/p/quickui/editor.png)\r\n\r\nBecause I didn't own a proper editor/IDE for Watcom C++ at that time.\r\n\r\nDuring my transition to Windows, I encountered a multitude of GUI editors, ranging from UltraEdit and EditPlus to Notepad++ and even gedit and geany. However, none of them managed to fulfill my requirements completely. Each day, I found myself grappling with the constant need to learn new IDEs, editors, or frameworks, which left me exhausted and disconnected from the true joy of programming. It was not until I discovered vim that everything changed. Instantly, I became enamored with its capabilities and found my passion for programming reignited.\r\n\r\nWith the continuous evolution of Vim, thanks to Bram’s unwavering efforts, the release of version 8.2 has brought forth exciting possibilities. It dawned on me that perhaps I can now incorporate some of the cool features from 25 years ago into Vim. Just like my experiences as a middle school student, learning to create PC games during the golden era of the 1990s, I can now infuse my everyday work with a nostalgic Borland/Turbo C++ flavor, courtesy of Vim.\r\n\r\nThe time has come for me to transform these ideas into reality, and it all begins with this plugin.\r\n\r\n## Credit\r\n\r\nlike vim-quickui? Follow the repository on [GitHub](https://github.com/skywind3000/vim-quickui) and vote for it on [vim.org](https://www.vim.org/scripts/script.php?script_id=5845). And if you're feeling especially charitable, follow skywind3000 on [Twitter](https://twitter.com/skywind3000) and [GitHub](https://github.com/skywind3000).\r\n\r\n","funding_links":[],"categories":["Vim Script","Vim script","Tools"],"sub_categories":["Interface"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskywind3000%2Fvim-quickui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskywind3000%2Fvim-quickui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskywind3000%2Fvim-quickui/lists"}