keymaps.lua (7991B)
1 vim.opt.spelllang = { "en_us" } 2 vim.opt.ttimeoutlen = 0 3 4 5 -- General config 6 vim.opt.conceallevel = 0 7 vim.opt.number = true 8 vim.opt.linebreak = true 9 vim.opt.clipboard = "unnamedplus" 10 vim.g.mapleader = " " 11 vim.o.guicursor = 'n-v-c:block' 12 13 -- vim.keymap.set('n', 'x', '<Plug>JupyterExecuteAll', { noremap = false, silent = true }) 14 15 -- tabbing 16 vim.opt.expandtab = true 17 vim.opt.tabstop = 4 18 vim.opt.shiftwidth = 4 19 vim.opt.softtabstop = 4 20 21 22 -- C-u and C-d better navigation (less disorienting) 23 vim.keymap.set("n", "<C-d>", "<C-d>zz", {desc = "Center cursor after moving down half-page"}) 24 vim.keymap.set("n", "<C-u>", "<C-u>zz", {desc = "Center cursor after moving down half-page"}) 25 26 -- Telescope (<leader>f) 27 local builtin = require("telescope.builtin") 28 -- vim.keymap.set("n", "<leader>ff", builtin.find_files, { desc = "Find File" }) 29 -- vim.keymap.set("n", "<leader>ft", builtin.live_grep, { desc = "Grep Files" }) 30 -- vim.keymap.set("n", "<leader>fb", builtin.buffers, { desc = "Buffers" }) 31 -- vim.keymap.set("n", "<leader>fm", builtin.marks, { desc = "Marks" }) 32 -- vim.keymap.set("n", "<leader>fk", builtin.keymaps, { desc = "Keymaps" }) 33 -- vim.keymap.set("n", "<leader>fc", require('telescope').extensions.zoxide.list, { desc = "Dir" }) 34 35 -- saucy bindings 36 vim.keymap.set('n', '<C-f>', builtin.find_files, { desc = "Find File" }) 37 vim.keymap.set("n", "<C-k>", builtin.keymaps, { desc = "Keymaps" }) 38 vim.keymap.set("n", "<C-b>", builtin.buffers, { desc = "Buffers" }) 39 vim.keymap.set("n", "<C-l>", builtin.live_grep, { desc = "Live Grep" }) 40 41 -- vim.keymap.set("n", "<C-a>", ':lua require("harpoon.mark").add_file()<CR>', { silent = true, desc = "Add File To Harpoon" }) 42 -- vim.keymap.set("n", "<C-h>", ':lua require("harpoon.ui").toggle_quick_menu()<CR>', { silent = true, desc = "View files" }) 43 44 -- vim.keymap.set("n", "<C-p>", builtin.marks, { desc = "Points" }) 45 46 47 -- Open terminal 48 49 vim.api.nvim_set_keymap( 50 "n", 51 "<leader>t", 52 ":let $VIM_DIR=expand('%:p:h')<CR>:terminal<CR>cd $VIM_DIR<CR>", 53 { silent = true } 54 ) 55 vim.cmd("autocmd TermOpen * startinsert") 56 57 -- Exit out of terminal mode 58 vim.api.nvim_set_keymap("t", "<C-r>", "<C-\\><C-n>", { noremap = true, silent = true }) 59 60 -- Open netrw 61 vim.api.nvim_set_keymap("n", "<leader>n", ":Ex<CR>", { noremap = true, silent = true }) 62 63 -- Spell check 64 vim.keymap.set('n', '<Leader>s', function() 65 vim.o.spell = not vim.o.spell 66 end, { desc = 'Toggle spell checking' }) 67 68 69 -- Splitting setttings 70 vim.o.splitbelow = true 71 vim.o.splitright = true 72 vim.o.relativenumber = true 73 vim.o.ignorecase = true 74 vim.o.smartcase = true 75 vim.o.statuscolumn = "%s %l %r" 76 77 -- config 78 vim.opt.swapfile = false 79 80 -- Jupyter 81 82 -- new cell 83 -- vim.keymap.set("n", "<leader>jb", ":JupyterAddCellBelow<CR>", { noremap = true, silent = true }) 84 -- vim.keymap.set("n", "<leader>ja", ":JupyterAddCellAbove<CR>", { noremap = true, silent = true }) 85 -- vim.keymap.set("n", "<leader>jt", ":JupyterConvertCellType<CR>", { noremap = true, silent = true }) 86 -- vim.keymap.set("n", "<leader>jd", ":JupyterRemoveCell<CR>", { noremap = true, silent = true }) 87 88 89 90 91 -- buffer navigation 92 93 vim.keymap.set("n", "<leader>b<Right>", ":bn<CR>", { noremap = true, silent = true }) -- b + Right Arrow for next buffer 94 vim.keymap.set("n", "<leader>b<Left>", ":bp<CR>", { noremap = true, silent = true }) -- b + Left Arrow for previous buffer 95 vim.keymap.set("n", "<leader>bx", ":bwipeout<CR>", { noremap = true, silent = true }) -- b + Left Arrow for previous buffer 96 97 -- close all buffers except current 98 vim.keymap.set("n", "<leader>bc", ":%bd|e#<CR>", { noremap = true, silent = true }) 99 100 -- Ctrl+Backspace to delete the previous word (same as browser... sorry, not sorry) 101 vim.keymap.set('i', '<C-h>', '<C-w>', { noremap = true, silent = true }) 102 103 104 -- Define how to use snippets 105 vim.cmd[[ 106 smap <silent><expr> <C-n> luasnip#jumpable(1) ? '<Plug>luasnip-jump-next' : '<Tab>' 107 108 imap <silent><expr> <C-p> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>' 109 smap <silent><expr> <C-p> luasnip#jumpable(-1) ? '<Plug>luasnip-jump-prev' : '<S-Tab>' 110 ]] 111 112 -- pounce config 113 -- vim.keymap.set("n", "s", ":Pounce <CR>", { noremap = true, silent = true }) 114 -- vim.keymap.set("x", "s", function() require'pounce'.pounce { } end) 115 -- vim.keymap.set("o", "s", function() require'pounce'.pounce { } end) 116 117 118 119 -- Fix highlight colors 120 121 -- Set custom highlight groups 122 123 -- local highlights = { 124 -- PounceGap = { bold = true, fg = "#ffffff", bg = "#2e2a3b" }, -- soft light gray text on a deep purple background 125 -- PounceAcceptBest = { bold = true, fg = "#ffffff", bg = "#ff6f61" }, -- vibrant coral red for best match selection 126 -- PounceAccept = { bold = true, fg = "#ffffff", bg = "#ffcc00" }, -- bright yellow-orange for standard selection 127 -- PounceMatch = { bold = true, fg = "#ffffff", bg = "#4b6a8f" }, -- light gray text on a vibrant blue-gray background 128 -- 129 -- } 130 -- 131 -- for group, opts in pairs(highlights) do 132 -- vim.api.nvim_set_hl(0, group, opts) 133 -- end 134 135 -- Map C-Right to w 136 vim.api.nvim_set_keymap('n', '<C-Right>', 'w', { noremap = true, silent = true }) 137 vim.api.nvim_set_keymap('v', '<C-Right>', 'w', { noremap = true, silent = true }) 138 vim.api.nvim_set_keymap('i', '<C-Right>', '<C-o>w', { noremap = true, silent = true }) 139 140 -- Map C-Left to b 141 vim.api.nvim_set_keymap('n', '<C-Left>', 'b', { noremap = true, silent = true }) 142 vim.api.nvim_set_keymap('v', '<C-Left>', 'b', { noremap = true, silent = true }) 143 vim.api.nvim_set_keymap('i', '<C-Left>', '<C-o>b', { noremap = true, silent = true }) 144 145 local map = vim.api.nvim_set_keymap 146 local opts = { noremap = true, silent = true } 147 148 -- Use internal formatting for bindings like gq. 149 vim.api.nvim_create_autocmd('LspAttach', { 150 callback = function(args) 151 vim.bo[args.buf].formatexpr = nil 152 end, 153 }) 154 155 -- Set up a global shortcut to toggle textwidth 156 vim.api.nvim_set_keymap( 157 "n", 158 "<leader>wt", 159 ":lua vim.opt.textwidth = (vim.opt.textwidth:get() == 80) and 0 or 80<CR>", 160 { noremap = true, silent = true } 161 ) 162 163 164 -- color scheme 165 166 -- vim.cmd('colorscheme cyberdream') 167 vim.cmd('colorscheme wildcharm') 168 169 vim.api.nvim_set_hl(0, "Normal", { bg = "#000000" }) -- Ensure the editor background remains black 170 vim.api.nvim_set_hl(0, "NormalFloat", { bg = "#000000" }) -- Floating windows background remains black 171 vim.api.nvim_set_hl(0, "NormalNC", { bg = "#000000", fg = "#ffffff" }) -- Set background to black and text to white 172 vim.api.nvim_set_hl(0, 'SignColumn', { bg = '#000000' }) 173 vim.opt.ruler = false 174 vim.o.laststatus = 0 175 vim.api.nvim_set_hl(0, "Normal", { bg = "#000000" }) 176 177 ---- remap new window direction 178 vim.api.nvim_set_keymap('n', '<C-w>h', ':vsplit<CR>', { noremap = true, silent = true }) 179 vim.api.nvim_set_keymap('n', '<C-w>v', ':split<CR>', { noremap = true, silent = true }) 180 vim.api.nvim_set_keymap('n', '<C-w>x', ':close<CR>', { noremap = true, silent = true }) 181 182 183 vim.o.shortmess = vim.o.shortmess .. "I" 184 185 vim.keymap.set({"n", "v"}, "<leader>d", "\"_d") 186 vim.api.nvim_set_keymap('i', '<C-e>', '<Esc>', { noremap = true, silent = true }) 187 vim.api.nvim_set_keymap('x', '<C-e>', '<Esc>', { noremap = true, silent = true }) 188 vim.api.nvim_set_keymap('o', '<C-e>', '<Esc>', { noremap = true, silent = true }) 189 vim.api.nvim_set_keymap('c', '<C-e>', '<Esc>', { noremap = true, silent = true }) 190 vim.api.nvim_set_keymap('n', '<C-e>', '<Esc>', { noremap = true, silent = true }) 191 192 vim.api.nvim_set_keymap('n', 'b', ':bnext<CR>', { noremap = true, silent = true }) 193 vim.api.nvim_set_keymap('n', 'B', ':bprevious<CR>', { noremap = true, silent = true }) 194 195 -- vim.api.nvim_set_keymap("n", "B", ":lua require('bufjump').backward()<cr>", opts) 196 -- vim.api.nvim_set_keymap("n", "b", ":lua require('bufjump').forward()<cr>", opts) 197 -- 198 199 vim.api.nvim_set_hl(0, 'FloatBorder', { fg = '#888888', bg = 'NONE' }) 200 vim.api.nvim_set_keymap('n', '<leader>f', ':Flash<CR>', {}) 201 -- vim.api.nvim_set_keymap('n', '<leader>fn', ':NextCard<CR>', {}) 202 -- vim.api.nvim_set_keymap('n', '<leader>fp', ':PreviousCard<CR>', {}) 203 -- vim.api.nvim_set_keymap('n', '<leader>ff', ':Flip<CR>', {})