2022-10-15 09:03:54 +01:00
|
|
|
local function t(str)
|
|
|
|
return vim.api.nvim_replace_termcodes(str, true, true, true)
|
|
|
|
end
|
|
|
|
|
|
|
|
function _G.smart_tab()
|
|
|
|
return vim.fn.pumvisible() == 1 and t'<C-n>' or t'<TAB>'
|
|
|
|
end
|
|
|
|
|
|
|
|
function _G.reverse_smart_tab()
|
|
|
|
return vim.fn.pumvisible() == 1 and t'<C-p>' or t'<TAB>'
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Disable arrow key navigation
|
|
|
|
vim.keymap.set("n", "<Up>", "<Nop>", { noremap = true })
|
|
|
|
vim.keymap.set("n", "<Down>", "<Nop>", { noremap = true })
|
|
|
|
vim.keymap.set("n", "<Left>", "<Nop>", { noremap = true })
|
|
|
|
vim.keymap.set("n", "<Right>", "<Nop>", { noremap = true })
|
|
|
|
|
|
|
|
vim.keymap.set("i", "<Up>", "<Nop>", { noremap = true })
|
|
|
|
vim.keymap.set("i", "<Down>", "<Nop>", { noremap = true })
|
|
|
|
vim.keymap.set("i", "<Left>", "<Nop>", { noremap = true })
|
|
|
|
vim.keymap.set("i", "<Right>", "<Nop>", { noremap = true })
|
|
|
|
|
|
|
|
vim.keymap.set("v", "<Up>", "<Nop>", { noremap = true })
|
|
|
|
vim.keymap.set("v", "<Down>", "<Nop>", { noremap = true })
|
|
|
|
vim.keymap.set("v", "<Left>", "<Nop>", { noremap = true })
|
|
|
|
vim.keymap.set("v", "<Right>", "<Nop>", { noremap = true })
|
|
|
|
|
|
|
|
-- Copy and paste to/from the OS clipboard
|
|
|
|
vim.keymap.set("n", "<leader>y", "\"+y", { noremap = true})
|
|
|
|
vim.keymap.set("n", "<leader>yy", "\"+yy", { noremap = true})
|
|
|
|
vim.keymap.set("v", "<leader>y", "\"+y", { noremap = true})
|
|
|
|
|
|
|
|
vim.keymap.set("n", "<leader>p", "\"+p", { noremap = true})
|
|
|
|
vim.keymap.set("n", "<leader>P", "\"+P", { noremap = true})
|
|
|
|
vim.keymap.set("v", "<leader>p", "\"+p", { noremap = true})
|
|
|
|
vim.keymap.set("v", "<leader>P", "\"+P\"`\"`", { noremap = true})
|
|
|
|
|
|
|
|
-- copy the whole file to the OS clipboard
|
|
|
|
vim.keymap.set("n", "<leader>c", ":%y+<CR>", { noremap = true})
|
|
|
|
|
|
|
|
-- Control buffer splits
|
|
|
|
vim.keymap.set("n", "<C-l>", ":vert resize +5<CR>", { noremap = true })
|
|
|
|
vim.keymap.set("n", "<C-h>", ":vert resize -5<CR>", { noremap = true })
|
|
|
|
vim.keymap.set("n", "<C-k>", ":resize -5<CR>", { noremap = true })
|
|
|
|
vim.keymap.set("n", "<C-j>", ":resize +5<CR>", { noremap = true })
|
|
|
|
|
|
|
|
-- Add matching curly brace
|
|
|
|
vim.keymap.set("i", "\\{", "{<cr>}<ESC>O", { noremap = true })
|
|
|
|
vim.keymap.set("i", ">{", "{}<ESC>a", { noremap = true })
|
|
|
|
vim.keymap.set("i", "<{", "{}<ESC>i", { noremap = true })
|
|
|
|
|
|
|
|
-- Add matching parenthesis
|
|
|
|
vim.keymap.set("i", "\\(", "(<cr>)<ESC>O", { noremap = true })
|
|
|
|
vim.keymap.set("i", ">(", "()<ESC>a", { noremap = true })
|
|
|
|
vim.keymap.set("i", "<(", "()<ESC>i", { noremap = true })
|
|
|
|
|
|
|
|
-- Add matching square brace
|
|
|
|
vim.keymap.set("i", "\\[", "[<cr>]<ESC>O", { noremap = true })
|
|
|
|
vim.keymap.set("i", ">[", "[]<ESC>a", { noremap = true })
|
|
|
|
vim.keymap.set("i", "<[", "[]<ESC>i", { noremap = true })
|
|
|
|
|
|
|
|
-- Use the TAB key to cycle through the autocompletion popup menu
|
|
|
|
vim.keymap.set("i", "<TAB>", "v:lua.smart_tab()", { expr = true, noremap = true })
|
|
|
|
vim.keymap.set("i", "<S-TAB>", "v:lua.reverse_smart_tab()", { expr = true, noremap = true })
|
|
|
|
|
|
|
|
-- Use CTRL+Space to open the autocompletion popup menu
|
|
|
|
vim.keymap.set("i", "<C-SPACE>", "<C-x><C-o>", { noremap = true })
|
|
|
|
|
|
|
|
-- Bufferline
|
|
|
|
vim.keymap.set("n", "<leader>bn", ":BufferLineCycleNext<CR>", { noremap = true})
|
|
|
|
vim.keymap.set("n", "<leader>bp", ":BufferLineCyclePrev<CR>", { noremap = true})
|
2022-10-16 13:19:51 +01:00
|
|
|
|
|
|
|
-- LF
|
|
|
|
vim.keymap.set("n", "<leader>ll", ":LfEdit<CR>", { noremap = true})
|
|
|
|
vim.keymap.set("n", "<leader>ls", ":LfSplit<CR>", { noremap = true})
|
|
|
|
vim.keymap.set("n", "<leader>lv", ":LfVsplit<CR>", { noremap = true})
|