80 lines
2.7 KiB
Lua
80 lines
2.7 KiB
Lua
--[[
|
|
-- Generic Keybindings for all files
|
|
--]]
|
|
|
|
local keymap = vim.api.nvim_set_keymap
|
|
local default_ops = { noremap = true, silent = true }
|
|
|
|
-- Quick escape insert mode
|
|
keymap('i', 'jk', '<Esc>', default_ops)
|
|
|
|
-- Delete single character without copying into register
|
|
keymap("n", "x", '"_x', default_ops)
|
|
|
|
-- Window management
|
|
keymap("n", "<leader>sv", "<C-w>v", default_ops)
|
|
keymap("n", "<leader>sh", "<C-w>s", default_ops)
|
|
keymap("n", "<leader>se", "<C-w>=", default_ops)
|
|
keymap("n", "<leader>sx", ":close<CR>", default_ops)
|
|
|
|
-- Save, Save/Quit
|
|
keymap('n', '<F1>', ':w<CR>', default_ops)
|
|
keymap('n', '<F2>', ':wq<CR>', default_ops)
|
|
|
|
-- Tab through open buffers
|
|
keymap('n', '[b', ':bp<CR>', default_ops)
|
|
keymap('n', ']b', ':bn<CR>', default_ops)
|
|
|
|
-- Enter lines
|
|
keymap('n', '<Enter>', 'o<Esc>', default_ops)
|
|
keymap('n', '<s-Enter>', 'O<Esc>', default_ops)
|
|
|
|
-- Folding
|
|
keymap('n', '<space>', 'za', default_ops)
|
|
|
|
-- Telescope stuff
|
|
keymap('n', '<Leader>ff', ':Telescope find_files hidden=true<CR>', default_ops)
|
|
keymap('n', '<Leader>fs', ':Telescope live_grep<CR>', default_ops)
|
|
keymap('n', '<Leader>fr', ':Telescope oldfiles<CR>', default_ops)
|
|
keymap('n', '<Leader>d', ':Telescope diagnostics<CR>', default_ops)
|
|
keymap('n', '<Leader>h', ':Telescope neoclip<CR>', default_ops)
|
|
keymap('n', '<Leader>b', ':Telescope buffers<CR>', default_ops)
|
|
keymap('n', '<Leader>c', ':Telescope colorscheme<CR>', default_ops)
|
|
keymap('n', '<Leader>fb', ':Telescope file_browser hidden=true theme=dropdown<CR>', default_ops)
|
|
|
|
-- Shift up and down
|
|
keymap("v", "J", ":m '>+1<CR>gv=gv", default_ops)
|
|
keymap("v", "K", ":m '<-2<CR>gv=gv", default_ops)
|
|
|
|
-- Keep centered
|
|
keymap("n", "<C-d>", "<C-d>zz", default_ops)
|
|
keymap("n", "<C-u>", "<C-u>zz", default_ops)
|
|
keymap("n", "n", "nzzzv", default_ops)
|
|
keymap("n", "N", "Nzzzv", default_ops)
|
|
keymap("n", "G", "Gzz", default_ops)
|
|
keymap("n", "{", "{zz", default_ops)
|
|
keymap("n", "}", "}zz", default_ops)
|
|
|
|
-- Yank to system clipboard
|
|
keymap("n", "<leader>y", [["+y]], default_ops)
|
|
keymap("v", "<leader>y", [["+y]], default_ops)
|
|
keymap("n", "<leader>Y", [["+Y]], default_ops)
|
|
|
|
-- Replace the word the cursor is currently on
|
|
keymap("n", "<leader>s", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], default_ops)
|
|
|
|
-- Git
|
|
keymap('n', '<Leader>gg', ':LazyGit<CR>', default_ops)
|
|
keymap('n', '<Leader>gf', ':Telescope git_files<CR>', default_ops)
|
|
|
|
-- File Explorer
|
|
keymap('n', '<Leader>e', ':NeoTreeFocusToggle<CR>', default_ops)
|
|
|
|
-- Object Explorer
|
|
keymap('n', '<Leader>o', ':SymbolsOutline<CR>', default_ops)
|
|
|
|
-- Debugging
|
|
keymap('n', '<Leader>B', ":lua require'dap'.toggle_breakpoint()<CR>", default_ops)
|
|
keymap('n', '<F5>', ":lua require'dap'.continue()<CR>", default_ops)
|
|
keymap('n', '<Leader>D', ":lua require'dapui'.toggle()<CR>", default_ops)
|