This is a Lua rewrite of the original SkyBison Vim plugin.
SkyBison is a plugin designed to make Neovim's command-line more intuitive and efficient. It provides real-time feedback and completions, reducing the number of keystrokes needed to execute commands.
SkyBison alleviates three key issues with the default command-line experience:
- Always-on Completions: Instead of requiring you to manually trigger completions (e.g., with
<C-d>
), SkyBison displays them automatically as you type. - Implicit Confirmation: When your input narrows down to a single possible completion, SkyBison allows you to confirm and execute the command by simply pressing
<CR>
, without needing to tab-complete or finish typing. - Automatic Execution: As an extension of the above, if you provide a count to the command, SkyBison can automatically execute the command as soon as it's uniquely identified, skipping the need for
<CR>
entirely.
For example, if you have three buffers open (.vimrc
, .bashrc
, and .zshrc
) and you type :SkyBison b
, you'll see a list of those buffers. If you then type v
, SkyBison will know you mean .vimrc
and will be ready to open it.
To install SkyBison using lazy.nvim
, add the following to your configuration:
{
"paradigm/skybison",
-- If you are installing it from a local path, you can use the `dir` option:
-- dir = "/path/to/your/local/skybison",
opts = {
fuzz = 1, -- 0 = none, 1 = full (default), 2 = substring
}
}
SkyBison provides a :SkyBison
command that you can map to a key of your choice. It's recommended to map it to :
, so it replaces the default command-line.
vim.keymap.set("n", ":", "<Cmd>SkyBison<CR>", { noremap = true, silent = true })
You can also create more specific mappings for common commands:
-- For :b. You can prefix this with a count, e.g., 2<leader>b
vim.keymap.set("n", "<leader>b", "<Cmd>SkyBison b <CR>", { noremap = true, silent = true })
-- For :tag. You can prefix this with a count, e.g., 2<leader>t
vim.keymap.set("n", "<leader>t", "<Cmd>SkyBison tag <CR>", { noremap = true, silent = true })
SkyBison is configured via the opts
table in your plugin manager.
fuzz
: Controls the fuzzy matching behavior.0
: No fuzzy matching.1
: Full fuzzy matching (default).2
: Substring matching.
For more detailed usage instructions and a full list of keybindings, please see the original doc/skybison.txt
.