nvim-bufmode is a plugin that provides a new mode in Neovim for managing buffers.
Either use packadd or any package manager. I recommend using lazy.nvim.
- Neovim 0.7+
- nvim-libmodal
lazy.nvim:
{'Iron-E/nvim-bufmode',
cmd = 'BufmodeEnter', -- don't load until using this command
config = true, -- automatically call `bufmode.setup()`; not needed if you specify `opts`
dependencies = {
'Iron-E/nvim-libmodal',
-- 'akinsho/bufferline.nvim', (optional)
-- 'romgrk/barbar.nvim', (optional)
},
keys = {{'<Leader>b', desc = 'Enter buffer mode', mode = 'n'}}, -- don't load until pressing these keys
-- opts = {}, (put `setup` options here, e.g. `opts = {enter_mapping = false}`
},Other examples:
- dein.vim:
- Add
call dein#add('https://github.com/Iron-E/nvim-bufmode')to~/.config/nvim/init.vim :call dein#install()
- Add
- NeoBundle:
- Add
NeoBundle 'https://github.com/Iron-E/nvim-bufmode'to~/.config/nvim/init.vim - Re-open vim or execute
:source ~/.vimrc
- Add
- vim-plug:
- Add
Plug 'https://github.com/Iron-E/nvim-bufmode'to~/.config/nvim/init.vim :PlugInstallor$ vim +PlugInstall +qall
- Add
- Vundle:
- Add
Plugin 'https://github.com/Iron-E/nvim-bufmode'to~/.config/nvim/init.vim :PluginInstallor$ vim +PluginInstall +qall
- Add
Enter nvim-bufmode with <Leader>b or :BufmodeEnter.
| Key | Use |
|---|---|
<Esc> |
Leave bufmode |
? |
Show help message |
^,0,<Home>,<Up> |
Go to beginning of buffer list. |
$,<End>,<Down> |
Go to end of buffer list. |
b,j,h,<Left>,<PageUp> |
Go to buffer left. |
w,k,l,<Right>,<PageDown> |
Go to buffer right. |
<S-b>,<S-j>,<S-h>,<S-Left>,<S-PageUp> |
Move current buffer to the left. |
<S-w>,<S-k>,<S-l>,<S-Right>,<S-PageDown> |
Move current buffer to the right. |
d |
Delete the current buffer. |
f,g,t |
Goto buffer by name. |
p |
Pick buffer for current window. |
r |
Replace current buffer with new. |
See :help bufmode-usage for additional details.
To customize the plugin, set vim.g.bufmode_mappings before loading it, or call
setup after:
let g:bufmode_mappings = {
\ '$': 'blast',
\ '0': 'bfirst',
\ '?': 'help bufmode-usage',
\ 'b': 'bprevious',
\ 'd': 'silent! bdelete',
\ 'w': 'bnext',
}require('bufmode').setup {
enter_mapping = '<leader>b', -- false to disable
bufferline = false, -- add bufferline.nvim keymaps
barbar = false, -- add barbar.nvim keymaps
keymaps = { -- defaults:
['$'] = 'blast',
['0'] = 'bfirst',
['?'] = 'help bufmode-usage',
['b'] = 'bprevious',
['d'] = 'silent! bdelete',
['w'] = 'bnext',
}
}