fix(bufferline): update bufferline config

- add a function to display the buffer id and ordinal in bufferline
- add mappings for cycling through buffers
This commit is contained in:
Dan Anglin 2022-04-15 19:45:16 +01:00
parent 2a2afe13a0
commit f300aebd3c
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638
2 changed files with 46 additions and 37 deletions

View file

@ -19,6 +19,9 @@ require("bufferline").setup{
s = s .. n .. sym
end
return s
end
end,
numbers = function(opts)
return string.format("[%s]%s", opts.id, opts.raise(opts.ordinal))
end,
}
}

View file

@ -10,59 +10,65 @@ function _G.reverse_smart_tab()
return vim.fn.pumvisible() == 1 and t'<C-p>' or t'<TAB>'
end
local keybind = vim.api.nvim_set_keymap
-- Disable arrow key navigation
vim.api.nvim_set_keymap("n", "<Up>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("n", "<Down>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("n", "<Left>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("n", "<Right>", "<Nop>", { noremap = true })
keybind("n", "<Up>", "<Nop>", { noremap = true })
keybind("n", "<Down>", "<Nop>", { noremap = true })
keybind("n", "<Left>", "<Nop>", { noremap = true })
keybind("n", "<Right>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("i", "<Up>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("i", "<Down>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("i", "<Left>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("i", "<Right>", "<Nop>", { noremap = true })
keybind("i", "<Up>", "<Nop>", { noremap = true })
keybind("i", "<Down>", "<Nop>", { noremap = true })
keybind("i", "<Left>", "<Nop>", { noremap = true })
keybind("i", "<Right>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("v", "<Up>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("v", "<Down>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("v", "<Left>", "<Nop>", { noremap = true })
vim.api.nvim_set_keymap("v", "<Right>", "<Nop>", { noremap = true })
keybind("v", "<Up>", "<Nop>", { noremap = true })
keybind("v", "<Down>", "<Nop>", { noremap = true })
keybind("v", "<Left>", "<Nop>", { noremap = true })
keybind("v", "<Right>", "<Nop>", { noremap = true })
-- Copy and paste to/from the OS clipboard
vim.api.nvim_set_keymap("n", "<leader>y", "\"+y", { noremap = true})
vim.api.nvim_set_keymap("n", "<leader>yy", "\"+yy", { noremap = true})
vim.api.nvim_set_keymap("v", "<leader>y", "\"+y", { noremap = true})
keybind("n", "<leader>y", "\"+y", { noremap = true})
keybind("n", "<leader>yy", "\"+yy", { noremap = true})
keybind("v", "<leader>y", "\"+y", { noremap = true})
vim.api.nvim_set_keymap("n", "<leader>p", "\"+p", { noremap = true})
vim.api.nvim_set_keymap("n", "<leader>P", "\"+P", { noremap = true})
vim.api.nvim_set_keymap("v", "<leader>p", "\"+p", { noremap = true})
vim.api.nvim_set_keymap("v", "<leader>P", "\"+P\"`\"`", { noremap = true})
keybind("n", "<leader>p", "\"+p", { noremap = true})
keybind("n", "<leader>P", "\"+P", { noremap = true})
keybind("v", "<leader>p", "\"+p", { noremap = true})
keybind("v", "<leader>P", "\"+P\"`\"`", { noremap = true})
-- copy the whole file to the OS clipboard
vim.api.nvim_set_keymap("n", "<leader>c", ":%y+<CR>", { noremap = true})
keybind("n", "<leader>c", ":%y+<CR>", { noremap = true})
-- Control buffer splits
vim.api.nvim_set_keymap("n", "<C-l>", ":vert resize +5<CR>", { noremap = true })
vim.api.nvim_set_keymap("n", "<C-h>", ":vert resize -5<CR>", { noremap = true })
vim.api.nvim_set_keymap("n", "<C-k>", ":resize -5<CR>", { noremap = true })
vim.api.nvim_set_keymap("n", "<C-j>", ":resize +5<CR>", { noremap = true })
keybind("n", "<C-l>", ":vert resize +5<CR>", { noremap = true })
keybind("n", "<C-h>", ":vert resize -5<CR>", { noremap = true })
keybind("n", "<C-k>", ":resize -5<CR>", { noremap = true })
keybind("n", "<C-j>", ":resize +5<CR>", { noremap = true })
-- Add matching curly brace
vim.api.nvim_set_keymap("i", "\\{", "{<cr>}<ESC>O", { noremap = true })
vim.api.nvim_set_keymap("i", ">{", "{}<ESC>a", { noremap = true })
vim.api.nvim_set_keymap("i", "<{", "{}<ESC>i", { noremap = true })
keybind("i", "\\{", "{<cr>}<ESC>O", { noremap = true })
keybind("i", ">{", "{}<ESC>a", { noremap = true })
keybind("i", "<{", "{}<ESC>i", { noremap = true })
-- Add matching parenthesis
vim.api.nvim_set_keymap("i", "\\(", "(<cr>)<ESC>O", { noremap = true })
vim.api.nvim_set_keymap("i", ">(", "()<ESC>a", { noremap = true })
vim.api.nvim_set_keymap("i", "<(", "()<ESC>i", { noremap = true })
keybind("i", "\\(", "(<cr>)<ESC>O", { noremap = true })
keybind("i", ">(", "()<ESC>a", { noremap = true })
keybind("i", "<(", "()<ESC>i", { noremap = true })
-- Add matching square brace
vim.api.nvim_set_keymap("i", "\\[", "[<cr>]<ESC>O", { noremap = true })
vim.api.nvim_set_keymap("i", ">[", "[]<ESC>a", { noremap = true })
vim.api.nvim_set_keymap("i", "<[", "[]<ESC>i", { noremap = true })
keybind("i", "\\[", "[<cr>]<ESC>O", { noremap = true })
keybind("i", ">[", "[]<ESC>a", { noremap = true })
keybind("i", "<[", "[]<ESC>i", { noremap = true })
-- Use the TAB key to cycle through the autocompletion popup menu
vim.api.nvim_set_keymap("i", "<TAB>", "v:lua.smart_tab()", { expr = true, noremap = true })
vim.api.nvim_set_keymap("i", "<S-TAB>", "v:lua.reverse_smart_tab()", { expr = true, noremap = true })
keybind("i", "<TAB>", "v:lua.smart_tab()", { expr = true, noremap = true })
keybind("i", "<S-TAB>", "v:lua.reverse_smart_tab()", { expr = true, noremap = true })
-- Use CTRL+Space to open the autocompletion popup menu
vim.api.nvim_set_keymap("i", "<C-SPACE>", "<C-x><C-o>", { noremap = true })
keybind("i", "<C-SPACE>", "<C-x><C-o>", { noremap = true })
-- Bufferline
keybind("n", "<leader>bn", ":BufferLineCycleNext<CR>", { noremap = true})
keybind("n", "<leader>bp", ":BufferLineCyclePrev<CR>", { noremap = true})