FSwitch (Fast Switch) is a lightweight, blazing-fast buffer manager for Neovim written in Lua.
It allows you to "pin" the specific files you are working on to a list and switch between them using their index (1, 2, 3...) or a minimal floating window menu. It is designed to replace the cognitive load of tabs and buffer lists with a simple, focused context.
- Pin/Unpin Buffers: Keep track of only the files that matter right now.
- Fast Navigation: Jump to buffers by keys.
- Floating Menu: View and select pinned buffers in a clean, interactive UI.
- Zero Dependencies: Written in pure Lua, uses native Neovim floating windows.
- Highly Configurable: Customize borders, dimensions, keymaps.
Install with your preferred package manager.
{
"chirag-diwan/FSwitch.nvim",
dependencies = {
"chirag-diwan/Neovim-Lua-Utils",
},
config = function()
require("FSwitch").setup({})
end
}use {
'chirag-diwan/FSwitch.nvim',
requires = {
"chirag-diwan/Neovim-Lua-Utils"
},
config = function()
require("FSwitch").setup({})
end
}{
hotkeys = {
pin1 = "8", -- For ultra fast context switching , in this respective order
pin2 = "9",
pin3 = "0",
},
ui = {
width = 0.8,
height = 0.6,
border = "rounded",
title = " Pinned ",
},
keys = {
toggle_pin = "<leader>pa",
display_pins = "<leader>pp",
close = "<Esc>",
cur_down = "j",
cur_up = "k",
select = "<CR>",
reorder_up = "<C-k>",
reorder_down = "<C-j>",
delete_pin = "d",
}
}Pull requests are welcome! If you find a bug or have a feature request, please open an issue.
- Fork the repo
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.