feat(ansible): install tmux/mc/git/nvim with laptop dotfiles
This commit is contained in:
107
ansible/files/operator-dotfiles/nvim/lua/keymaps.lua
Normal file
107
ansible/files/operator-dotfiles/nvim/lua/keymaps.lua
Normal file
@@ -0,0 +1,107 @@
|
||||
-- ======================================================================
|
||||
-- keymaps.lua — Key mappings
|
||||
-- ======================================================================
|
||||
|
||||
local map = vim.keymap.set
|
||||
|
||||
-- NERDTree
|
||||
map("n", "<leader>n", ":NERDTreeFocus<CR>", { silent = true, desc = "NERDTree: Focus" })
|
||||
map("n", "<C-n>", ":NERDTree<CR>", { silent = true, desc = "NERDTree: Open" })
|
||||
map("n", "<C-t>", ":NERDTreeToggle<CR>", { silent = true, desc = "NERDTree: Toggle" })
|
||||
map("n", "<C-f>", ":NERDTreeFind<CR>", { silent = true, desc = "NERDTree: Find current file" })
|
||||
|
||||
-- OSC52 (vim-oscyank)
|
||||
map("n", "<leader>c", "<Plug>OSCYankOperator", { desc = "OSC Yank: Operator" })
|
||||
map("n", "<leader>cc", "<leader>c_", { desc = "OSC Yank: Current line" })
|
||||
map("v", "<leader>c", "<Plug>OSCYankVisual", { desc = "OSC Yank: Visual selection" })
|
||||
|
||||
-- vim-slime
|
||||
vim.g.slime_no_mappings = 1
|
||||
map("x", "<C-c><C-c>", "<Plug>SlimeRegionSend", { desc = "Slime: Send region" })
|
||||
map("n", "<C-c><C-c>", function()
|
||||
require("utils").send_cell("^#%%")
|
||||
end, { silent = true, desc = "Slime: Send cell" })
|
||||
map("n", "<C-c>v", "<Plug>SlimeConfig", { desc = "Slime: Configure" })
|
||||
|
||||
-- Claude Code
|
||||
map("n", "<leader>ac", ":ClaudeCode<CR>", { silent = true, desc = "ClaudeCode: Toggle" })
|
||||
map("n", "<leader>af", ":ClaudeCodeFocus<CR>", { silent = true, desc = "ClaudeCode: Focus" })
|
||||
map("v", "<leader>as", ":ClaudeCodeSend<CR>", { silent = true, desc = "ClaudeCode: Send selection" })
|
||||
map("n", "<leader>ad", ":ClaudeCodeAdd ", { desc = "ClaudeCode: Add file to context" })
|
||||
map("n", "<leader>aa", ":ClaudeCodeDiffAccept<CR>", { silent = true, desc = "ClaudeCode: Accept diff" })
|
||||
map("n", "<leader>ar", ":ClaudeCodeDiffDeny<CR>", { silent = true, desc = "ClaudeCode: Reject diff" })
|
||||
|
||||
|
||||
-- DAP (GDB)
|
||||
local function dap_attach_or(fn)
|
||||
return function(...)
|
||||
local dap = require("dap")
|
||||
if dap.session() then
|
||||
return fn(dap, ...)
|
||||
end
|
||||
if vim.fn.exists(":Hazard3Attach") == 2 then
|
||||
vim.cmd("Hazard3Attach")
|
||||
return
|
||||
end
|
||||
return fn(dap, ...)
|
||||
end
|
||||
end
|
||||
|
||||
map("n", "<F5>", dap_attach_or(function(dap)
|
||||
dap.continue()
|
||||
end), { desc = "DAP: Continue (or Hazard3Attach)" })
|
||||
|
||||
map("n", "<F10>", dap_attach_or(function(dap)
|
||||
dap.step_over()
|
||||
end), { desc = "DAP: Step over" })
|
||||
|
||||
map("n", "<F11>", dap_attach_or(function(dap)
|
||||
dap.step_into()
|
||||
end), { desc = "DAP: Step into" })
|
||||
|
||||
map("n", "<F12>", dap_attach_or(function(dap)
|
||||
dap.step_out()
|
||||
end), { desc = "DAP: Step out" })
|
||||
|
||||
map("n", "<leader>db", function()
|
||||
require("dap").toggle_breakpoint()
|
||||
end, { desc = "DAP: Toggle breakpoint" })
|
||||
|
||||
map("n", "<leader>dB", function()
|
||||
require("dap").set_breakpoint(vim.fn.input("Condition: "))
|
||||
end, { desc = "DAP: Conditional breakpoint" })
|
||||
|
||||
map("n", "<leader>dr", function()
|
||||
require("dap").repl.open()
|
||||
end, { desc = "DAP: REPL" })
|
||||
|
||||
map("n", "<leader>du", function()
|
||||
require("dapui").toggle()
|
||||
end, { desc = "DAP: Toggle UI" })
|
||||
|
||||
map("n", "<leader>dR", function()
|
||||
local dapui = require("dapui")
|
||||
dapui.close()
|
||||
dapui.open({ reset = true })
|
||||
end, { desc = "DAP UI: Reset layout" })
|
||||
|
||||
map("n", "<leader>da", function()
|
||||
require("hazard3_dap").open_disassembly()
|
||||
end, { desc = "DAP: Disassembly" })
|
||||
|
||||
|
||||
map("n", "<leader>di", dap_attach_or(function(dap)
|
||||
dap.step_into({ granularity = "instruction" })
|
||||
end), { desc = "DAP: Step instruction into" })
|
||||
|
||||
map("n", "<leader>dI", dap_attach_or(function(dap)
|
||||
dap.step_over({ granularity = "instruction" })
|
||||
end), { desc = "DAP: Step instruction over" })
|
||||
|
||||
map("n", "<leader>dx", function()
|
||||
require("dap").terminate()
|
||||
end, { desc = "DAP: Terminate" })
|
||||
|
||||
map("n", "<leader>dp", function()
|
||||
require("dap").pause()
|
||||
end, { desc = "DAP: Pause" })
|
||||
Reference in New Issue
Block a user