It's a tiny (currently 910 LoC) UI suite designed to make your NeoVim workflow faster. It currently consists of six components:
ui-overrider: alternative to NeoVim's defaultvim.ui.selectmenuinput-overrider: alternative to NeoVim's defaultvim.ui.inputpromptbuffers-manager: utility to quickly switch to, split-open or close open buffersdiagnostics-navigator: utility to quickly navigate and jump to LSP diagnostics issues in the current buffermarks-manager: utility to quickly navigate, jump to or remove (permanently!) uppercase marksreferences-navigator: utility to quickly navigate and jump to project-wide references to the symbol under the cursor
(Displays all open buffers. The first nine are bound to a number, shown on the left of their name.)
| Key | Action |
|---|---|
Cr |
open the highlighted buffer |
C-v |
open the highlighted buffer in a split to the right |
C-s (or C-x) |
open the highlighted buffer in a split below |
x or d |
close the highlighted buffer (refused if it has unsaved changes) |
<number> |
open that buffer straight away, without navigating the list |
v<number> |
open that buffer in a split to the right |
s<number> |
open that buffer in a split below |
┌───────────────────────────────┐
│1 lua/popui/core.lua │
│2 lua/popui/marks-manager.lua │
│3 README.md │
│4 [No Name] │
└───────────────────────────────┘
Buffers with unsaved changes are marked with [+].
" Using vim-plug
Plug 'hood/popui.nvim'
" Using Vundle
Plugin 'hood/popui.nvim'vim.ui.select = require"popui.ui-overrider"
vim.ui.input = require"popui.input-overrider"
vim.api.nvim_set_keymap("n", ",b", ':lua require"popui.buffers-manager"()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", ",d", ':lua require"popui.diagnostics-navigator"()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", ",m", ':lua require"popui.marks-manager"()<CR>', { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", ",r", ':lua require"popui.references-navigator"()<CR>', { noremap = true, silent = true })" Available styles: "sharp" | "rounded" | "double"
let g:popui_border_style = "double"hi PopuiCoordinates guifg=#6A1010 ctermfg=Red
hi PopuiDiagnosticsCodes guifg=#777777 ctermfg=Gray- No dependencies baby!





