home ~ projects ~ socials

Move Back And Forth Between Buffers In Neovim With Bufferline Keymaps

This is my bufferline config. It's what I use instead of tabs for Neovim in combination with NvimTree

pub fn set_current_file_for_nav_link_for_item(&self, id: &String, item: &mut NavItem) { if item.page_id == id.to_string() { item.is_current_page = true; item.title_link_or_text = item.title.clone(); item.menu_title_link_or_text = item.menu_title.clone(); if matches!(item.item_type, NavItemType::OpenedFolderIndex) { item.item_type = NavItemType::ActiveFolderIndex; } else { item.item_type = NavItemType::CurrentFile; } } item.children .iter_mut() .for_each(|i| self.set_current_file_for_nav_link_for_item(id, i)); }

~/.config/nvim/after/plugin/bufferline-config.lua

-- buffer line
require("bufferline").setup({
    options = {
        indicator = { style = 'underline' },
        offsets = {
            {
                filetype = "NvimTree",
                text = "File Explorer",
                highlight = "Directory",
                separator = true 
            }
        },
    },
})

vim.api.nvim_set_keymap(
   "n", "<M-D>", ":BufferLineCyclePrev<CR>", {}
)

vim.api.nvim_set_keymap(
   "n", "<M-F>", ":BufferLineCycleNext<CR>", {}
)

vim.api.nvim_set_keymap(
   "i", "<M-D>", "<ESC>:BufferLineCyclePrev<CR>", {}
)

vim.api.nvim_set_keymap(
   "i", "<M-F>", "<ESC>:BufferLineCycleNext<CR>", {}
)

Notes

  • Help is avaialble via: :h bufferline.nvim
-- end of line --