Working on Neogit keybind integration, plus other changes
This commit is contained in:
176
lua/keybinds.lua
176
lua/keybinds.lua
@@ -1,82 +1,126 @@
|
||||
--/lua/keybinds.lua
|
||||
-- This file defines all of the kybinds for nvim.
|
||||
-- vim.keymap.set('mode','<modifier>key','action', {desc = 'description'})
|
||||
local utils = require("custom-functions")
|
||||
|
||||
-- move betwwen buffer easier
|
||||
vim.keymap.set('n', '<Tab>', ':bnext<CR>')
|
||||
vim.keymap.set('n', '<S-Tab>', ':bprev<CR>')
|
||||
vim.keymap.set('n', '<leader>x', ':bdelete<CR>')
|
||||
|
||||
-- resizing pains with resize.lua shortcut
|
||||
vim.keymap.set('n', '<M-Left>', "<cmd>lua require('resize').ResizeLeft()<CR>")
|
||||
vim.keymap.set('n', '<M-Right>', "<cmd>lua require('resize').ResizeRight()<CR>")
|
||||
vim.keymap.set('n', '<M-Up>', "<cmd>lua require('resize').ResizeUp()<CR>")
|
||||
vim.keymap.set('n', '<M-Down>', "<cmd>lua require('resize').ResizeDown()<CR>")
|
||||
|
||||
-- termunal interface shortcuts
|
||||
vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>')
|
||||
vim.keymap.set('n','<Tab>' ,':bnext<CR>')
|
||||
vim.keymap.set('n','<S-Tab>' ,':bprev<CR>')
|
||||
vim.keymap.set('n','<leader>x' ,':bdelete<CR>')
|
||||
-- resizing pains with resize.lua shortcut
|
||||
vim.keymap.set('n','<M-Left>' ,"<cmd>lua require('resize').ResizeLeft()<CR>")
|
||||
vim.keymap.set('n','<M-Right>' ,"<cmd>lua require('resize').ResizeRight()<CR>")
|
||||
vim.keymap.set('n','<M-Up>' ,"<cmd>lua require('resize').ResizeUp()<CR>")
|
||||
vim.keymap.set('n','<M-Down>' ,"<cmd>lua require('resize').ResizeDown()<CR>")
|
||||
-- terminal interface shortcuts
|
||||
vim.keymap.set('n','<Esc>' ,'<cmd>nohlsearch<CR>')
|
||||
vim.keymap.set('t','<Esc><Esc>' ,'<C-\\><C-n>' ,{ desc = 'Exit terminal mode' })
|
||||
vim.keymap.set('n','<leader>r' ,'<cmd>TermExec cmd="clear && make"<CR>' ,{ desc = '[r]un make in terminal' })
|
||||
vim.keymap.set('n','<leader>n' ,'<cmd>ToggleTerm direction=vertical name=compile size=70<CR>', { desc = 'open a [n]ew terminal' })
|
||||
vim.keymap.set('n','<leader>t' ,'<cmd>ToggleTerm<CR>' ,{desc = '[T]oggle all terminals'})
|
||||
vim.keymap.set("n","<leader>e" ,"<cmd>NvimTreeToggle<CR>" ,{desc = 'open [E]xplorer'})
|
||||
vim.keymap.set("n", "<leader>l" ,utils.runLastCommand ,{ desc = "Run [L]ast command in terminal 1" })
|
||||
-- Diagnostic keymaps
|
||||
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' })
|
||||
vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' })
|
||||
-- vim.keymap.set("n", "<leader>a", ":IncRename ", {desc = 'ren[A]me variable under cursor'})
|
||||
vim .keymap.set('n','<leader>r','<cmd>TermExec cmd="clear && make"<CR>', { desc = '[r]un make in terminal' })
|
||||
vim .keymap .set('n','<leader>n', '<cmd>ToggleTerm direction=vertical name=compile size=70<CR>', { desc = 'open a [n]ew terminal' })
|
||||
vim.keymap.set('n','<leader>t', '<cmd>ToggleTerm<CR>', {desc = '[T]oggle all terminals'})
|
||||
vim.keymap.set("n", "<leader>l", function()
|
||||
-- Get terminal ID 1
|
||||
-- Save position and buffer context
|
||||
local term = require("toggleterm.terminal").get(1)
|
||||
if term then
|
||||
local original_window = vim.api.nvim_get_current_win()
|
||||
local saved_view = vim.fn.winsaveview()
|
||||
-- Using \r (carriage return) or \n\n often bypasses shell interceptors
|
||||
-- term:send("clear\r")
|
||||
term:send("test_dev.sh\r")
|
||||
vim.api.nvim_set_current_win(original_window)
|
||||
vim.fn.winrestview(saved_view)
|
||||
else
|
||||
vim.notify("Terminal 1 is not open yet!", vim.log.levels.WARN)
|
||||
end
|
||||
-- Return logic
|
||||
end, { desc = "Run [L]ast command in terminal 1" })
|
||||
vim.keymap.set('n', '<leader>q' ,vim.diagnostic.setloclist ,{ desc = 'Open diagnostic [Q]uickfix list' })
|
||||
|
||||
-- TIP: Disable arrow keys in normal mode
|
||||
vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>')
|
||||
vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>')
|
||||
vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>')
|
||||
vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>')
|
||||
-- Disable arrow keys in normal mode
|
||||
vim.keymap.set('n','<left>' ,'<cmd>echo "Use h to move!!"<CR>')
|
||||
vim.keymap.set('n','<right>' ,'<cmd>echo "Use l to move!!"<CR>')
|
||||
vim.keymap.set('n','<up>' ,'<cmd>echo "Use k to move!!"<CR>')
|
||||
vim.keymap.set('n','<down>' ,'<cmd>echo "Use j to move!!"<CR>')
|
||||
|
||||
-- Keybinds to make split navigation easier.
|
||||
-- Use CTRL+<hjkl> to switch between windows
|
||||
--
|
||||
-- See `:help wincmd` for a list of all window commands
|
||||
vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' })
|
||||
vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right window' })
|
||||
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
|
||||
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
|
||||
vim.keymap.set('n','<C-h>' ,'<C-w><C-h>' ,{ desc = 'Move focus to the left window' })
|
||||
vim.keymap.set('n','<C-l>' ,'<C-w><C-l>' ,{ desc = 'Move focus to the right window' })
|
||||
vim.keymap.set('n','<C-j>' ,'<C-w><C-j>' ,{ desc = 'Move focus to the lower window' })
|
||||
vim.keymap.set('n','<C-k>' ,'<C-w><C-k>' ,{ desc = 'Move focus to the upper window' })
|
||||
|
||||
-- NOTE: Some terminals have colliding keymaps or are not able to send distinct keycodes
|
||||
vim.keymap.set("n", "<C-S-h>", "<C-w>H", { desc = "Move window to the left" })
|
||||
vim.keymap.set("n", "<C-S-l>", "<C-w>L", { desc = "Move window to the right" })
|
||||
vim.keymap.set("n", "<C-S-j>", "<C-w>J", { desc = "Move window to the lower" })
|
||||
vim.keymap.set("n", "<C-S-k>", "<C-w>K", { desc = "Move window to the upper" })
|
||||
vim.keymap.set("n","<C-S-h>" ,"<C-w>H" ,{ desc = "Move window to the left" })
|
||||
vim.keymap.set("n","<C-S-l>" ,"<C-w>L" ,{ desc = "Move window to the right" })
|
||||
vim.keymap.set("n","<C-S-j>" ,"<C-w>J" ,{ desc = "Move window to the lower" })
|
||||
vim.keymap.set("n","<C-S-k>" ,"<C-w>K" ,{ desc = "Move window to the upper" })
|
||||
|
||||
vim.keymap.set("n", "<leader>e", "<cmd>NvimTreeToggle<CR>", {desc = 'open [E]xplorer'})
|
||||
-- [[ Basic QOL
|
||||
-- vim.keymap.set("n", "<leader>a", ":IncRename ", {desc = 'ren[A]me variable under cursor'})
|
||||
|
||||
-- gemini CLI bindings
|
||||
vim.keymap.set('n', "<leader>a/", "<cmd>Gemini toggle<cr>", { desc = "Toggle Gemini CLI" })
|
||||
vim.keymap.set('n', "<leader>aa", "<cmd>Gemini toggle<cr>", { desc = "Toggle Gemini CLI" })
|
||||
vim.keymap.set('n', "<leader>aq", "<cmd>Gemini ask<cr>", { desc = "Ask Gemini", })
|
||||
vim.keymap.set('n', "<leader>af", "<cmd>Gemini add_file<cr>", { desc = "Add File"} )
|
||||
-- PLUGIN KEYBINDS
|
||||
-- gemini CLI bindngs
|
||||
-- TODO better AI implementation
|
||||
vim.keymap.set('n',"<leader>a/" ,"<cmd>Gemini toggle<cr>" ,{ desc = "Toggle Gemini CLI" })
|
||||
vim.keymap.set('n',"<leader>aa" ,"<cmd>Gemini toggle<cr>" ,{ desc = "Toggle Gemini CLI" })
|
||||
vim.keymap.set('n',"<leader>aq" ,"<cmd>Gemini ask<cr>" ,{ desc = "Ask Gemini", })
|
||||
vim.keymap.set('n',"<leader>af" ,"<cmd>Gemini add_file<cr>" ,{ desc = "Add File"} )
|
||||
|
||||
-- spellcheck keybind to toggle on current buffer
|
||||
vim.keymap.set('n', "<leader>ze", "<cmd>setlocal spell<cr>", { desc = "enable spellecheck on buffer" })
|
||||
vim.keymap.set('n', "<leader>zd", "<cmd>setlocal nospell<cr>", { desc = "Disable spellecheck on buffer" })
|
||||
--spellcheck keybind to toggle on current buffer
|
||||
vim.keymap.set('n',"<leader>ze" ,"<cmd>setlocal spell<cr>" ,{ desc = "enable spellecheck on buffer" })
|
||||
vim.keymap.set('n',"<leader>zd" ,"<cmd>setlocal nospell<cr>" ,{ desc = "Disable spellecheck on buffer" })
|
||||
|
||||
--basic qol
|
||||
-- Bitburner Sync Keybinds
|
||||
vim.keymap.set('n', '<leader>bp', '<cmd>BBPull<CR>', { desc = '[B]itburner [P]ull' })
|
||||
vim.keymap.set('n', '<leader>bu', '<cmd>BBPush<CR>', { desc = '[B]itburner [U]pload/Push' })
|
||||
vim.keymap.set('n', '<leader>br', '<cmd>BBRam<CR>', { desc = '[B]itburner [R]am check' })
|
||||
--Hex Editing
|
||||
vim.keymap.set('n', '<leader>hh', '<cmd>Hex<CR>', { desc = 'open [H]ex view of a file' })
|
||||
vim.keymap.set('n', '<leader>hh' ,'<cmd>Hex<CR>' ,{ desc = 'open [H]ex view of a file' })
|
||||
|
||||
--Neogit
|
||||
-- <leader>gg bound to UI toggle
|
||||
vim.keymap.set('n', '<leader>gg' ,'<cmd>Neogit<cr>' ,{ desc = 'open Neo[g]it interface' })
|
||||
vim.keymap.set('n', '<leader>gc' ,'<cmd>Neogit commit<cr>' ,{ desc = 'open Neogit [c]ommit page' })
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user