diff --git a/.config/lvim/config.lua b/.config/lvim/config.lua index 92aedc47..5bdf8021 100644 --- a/.config/lvim/config.lua +++ b/.config/lvim/config.lua @@ -16,6 +16,7 @@ vim.g.lf_replace_netrw = 1 vim.opt.foldmethod = "expr" vim.opt.foldexpr = "nvim_treesitter#foldexpr()" lvim.format_on_save = false +lvim.line_wrap_cursor_movement = false vim.g.vimwiki_ext2syntax = { ['.Rmd'] = 'markdown', ['.rmd'] = 'markdown', ['.md'] = 'markdown', ['.markdown'] = 'markdown', ['.mdown'] = 'markdown' } @@ -99,33 +100,47 @@ lvim.plugins = { { "vimwiki/vimwiki" } } +-- Functions for keymapping +function Custom_Close() + local num_bufs = #vim.tbl_filter( + function(buf) + return vim.api.nvim_buf_is_valid(buf) and vim.api.nvim_buf_get_option(buf, 'buflisted') + end, + vim.api.nvim_list_bufs() + ) + if num_bufs <= 1 then + vim.cmd("quit") + end + vim.api.nvim_buf_delete(0, {}) +end + -- keymappings [view all the defaults by pressing <leader>Lk] lvim.leader = "space" lvim.keys.insert_mode = { ["<C-S>"] = "<ESC>:w<CR>a", - ["<C-Q>"] = "<ESC>:bd<CR>", + ["<C-Q>"] = "<ESC>:lua Custom_Close()<CR>", ["<C-BS>"] = "<C-W>" } lvim.keys.normal_mode = { ["<c-s>"] = ":w<CR>", - ["<c-q>"] = ":bd<CR>", + ["<c-q>"] = ":lua Custom_Close()<CR>", ["<C-Right>"] = ":bn<CR>", ["<C-Left>"] = ":bp<CR>" } lvim.keys.term_mode = { - ["<c-q>"] = ":bd<CR>", + ["<c-q>"] = ":lua Custom_Close()<CR>", ["<C-Right>"] = ":bn<CR>", ["<C-Left>"] = ":bp<CR>" } lvim.keys.visual_mode = { ["<c-s>"] = "<ESC>:w<CR>", - ["<c-q>"] = "<ESC>:bd<CR>", + ["<c-q>"] = "<ESC>:lua Custom_Close()<CR>", ["<"] = "<gv", [">"] = ">gv", } lvim.keys.visual_block_mode = { ["<c-s>"] = "<ESC>:w<CR>", - ["<c-q>"] = "<ESC>:bd<CR>", + ["<c-q>"] = "<ESC>:lua Custom_Close()<CR>", ["K"] = ":move '<-2<CR>gv-gv", ["J"] = ":move '>+1<CR>gv-gv", }