vim.keymap.set('n', '', 'nohlsearch') vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the left window' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the right window' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the lower window' }) vim.keymap.set('n', '', '', { desc = 'Move focus to the upper window' }) vim.keymap.set('n', '', 'w', { desc = 'Save file' }) vim.keymap.set('i', '', 'wa', { desc = 'Save file' }) vim.keymap.set('n', '', 'q', { desc = 'Quit Neovim' }) vim.keymap.set('n', '', 'qa!', { desc = 'Force Quit Neovim' }) -- Use 'jk' to exit insert mode vim.api.nvim_set_keymap('i', 'jk', '', { noremap = true, silent = true }) -- Use 'Y' to yank (copy) to the end of the line vim.api.nvim_create_autocmd('TextYankPost', { desc = 'Highlight when yanking (copying) text', group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }), callback = function() vim.highlight.on_yank() end, }) -- Keybindings for folding vim.keymap.set('n', 'zc', 'zc', { desc = 'Close fold' }) -- Collapse current fold vim.keymap.set('n', 'zo', 'zo', { desc = 'Open fold' }) -- Open current fold vim.keymap.set('n', 'za', 'za', { desc = 'Toggle fold' }) -- Toggle fold open/close vim.keymap.set('n', 'zR', 'zR', { desc = 'Open all folds' }) -- Open all folds vim.keymap.set('n', 'zM', 'zM', { desc = 'Close all folds' }) -- Close all folds -- Spectre: Search and replace in all files vim.keymap.set('n', 'sr', function() require('spectre').open() end, { desc = '[S]earch and [R]eplace in all files' }) -- Lazygit: Open in a floating terminal vim.keymap.set('n', 'gg', function() local Terminal = require('toggleterm.terminal').Terminal local lazygit = Terminal:new { cmd = 'lazygit', dir = 'git_dir', -- Open Lazygit in the current Git repository hidden = true, -- Hide the terminal buffer direction = 'float', -- Open in a floating window float_opts = { border = 'curved', -- Add a border to the floating window }, on_open = function(term) vim.cmd 'startinsert!' -- Enter insert mode when Lazygit opens end, on_close = function(term) vim.cmd 'startinsert!' -- Exit insert mode when Lazygit closes end, } lazygit:toggle() -- Toggle Lazygit end, { desc = '[G]it [G]UI (Lazygit)' })