nvim.d/nvim/lua/keymappings.lua
Dan Anglin 0f18fb7cc5
fix: rename the config directory to nvim
Renamed the configuration directory to nvim so that, when extracted, the
correct directory is created.

Fixes linux-home/nvim.d#2
2023-01-16 19:13:25 +00:00

77 lines
3.2 KiB
Lua

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})
-- 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})