feat(ansible): install tmux/mc/git/nvim with laptop dotfiles

This commit is contained in:
u1
2026-02-06 23:23:44 +01:00
parent 415af7efcd
commit 758f996e6b
12 changed files with 825 additions and 1 deletions

View 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" })