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'' or t'' end function _G.reverse_smart_tab() return vim.fn.pumvisible() == 1 and t'' or t'' end -- Disable arrow key navigation vim.keymap.set("n", "", "", { noremap = true }) vim.keymap.set("n", "", "", { noremap = true }) vim.keymap.set("n", "", "", { noremap = true }) vim.keymap.set("n", "", "", { noremap = true }) vim.keymap.set("i", "", "", { noremap = true }) vim.keymap.set("i", "", "", { noremap = true }) vim.keymap.set("i", "", "", { noremap = true }) vim.keymap.set("i", "", "", { noremap = true }) vim.keymap.set("v", "", "", { noremap = true }) vim.keymap.set("v", "", "", { noremap = true }) vim.keymap.set("v", "", "", { noremap = true }) vim.keymap.set("v", "", "", { noremap = true }) -- Copy and paste to/from the OS clipboard vim.keymap.set("n", "y", "\"+y", { noremap = true}) vim.keymap.set("n", "yy", "\"+yy", { noremap = true}) vim.keymap.set("v", "y", "\"+y", { noremap = true}) vim.keymap.set("n", "p", "\"+p", { noremap = true}) vim.keymap.set("n", "P", "\"+P", { noremap = true}) vim.keymap.set("v", "p", "\"+p", { noremap = true}) vim.keymap.set("v", "P", "\"+P\"`\"`", { noremap = true}) -- copy the whole file to the OS clipboard vim.keymap.set("n", "c", ":%y+", { noremap = true}) -- Control buffer splits vim.keymap.set("n", "", ":vert resize +5", { noremap = true }) vim.keymap.set("n", "", ":vert resize -5", { noremap = true }) vim.keymap.set("n", "", ":resize -5", { noremap = true }) vim.keymap.set("n", "", ":resize +5", { noremap = true }) -- Add matching curly brace vim.keymap.set("i", "\\{", "{}O", { noremap = true }) vim.keymap.set("i", ">{", "{}a", { noremap = true }) vim.keymap.set("i", "<{", "{}i", { noremap = true }) -- Add matching parenthesis vim.keymap.set("i", "\\(", "()O", { noremap = true }) vim.keymap.set("i", ">(", "()a", { noremap = true }) vim.keymap.set("i", "<(", "()i", { noremap = true }) -- Add matching square brace vim.keymap.set("i", "\\[", "[]O", { noremap = true }) vim.keymap.set("i", ">[", "[]a", { noremap = true }) vim.keymap.set("i", "<[", "[]i", { noremap = true }) -- Use the TAB key to cycle through the autocompletion popup menu vim.keymap.set("i", "", "v:lua.smart_tab()", { expr = true, noremap = true }) vim.keymap.set("i", "", "v:lua.reverse_smart_tab()", { expr = true, noremap = true }) -- Use CTRL+Space to open the autocompletion popup menu vim.keymap.set("i", "", "", { noremap = true }) -- Bufferline vim.keymap.set("n", "bn", ":BufferLineCycleNext", { noremap = true}) vim.keymap.set("n", "bp", ":BufferLineCyclePrev", { noremap = true}) -- LF vim.keymap.set("n", "ll", ":LfEdit", { noremap = true}) vim.keymap.set("n", "ls", ":LfSplit", { noremap = true}) vim.keymap.set("n", "lv", ":LfVsplit", { noremap = true})