Newest version of dotfiles with Ghostty, Fish, kickstart vim and zsh updates
This commit is contained in:
183
.config/nvim/lua/custom/hydra.lua
Normal file
183
.config/nvim/lua/custom/hydra.lua
Normal file
@@ -0,0 +1,183 @@
|
||||
-- ~/.config/nvim/lua/custom/hydra.lua
|
||||
local Hydra = require('hydra')
|
||||
|
||||
-- Fenster-Management Hydra
|
||||
Hydra({
|
||||
name = 'Fenster',
|
||||
mode = 'n',
|
||||
body = '<C-w>',
|
||||
heads = {
|
||||
-- Navigieren zwischen Fenstern
|
||||
{ 'h', '<C-w>h', { desc = 'links' } },
|
||||
{ 'j', '<C-w>j', { desc = 'unten' } },
|
||||
{ 'k', '<C-w>k', { desc = 'oben' } },
|
||||
{ 'l', '<C-w>l', { desc = 'rechts' } },
|
||||
|
||||
-- Fenster verschieben
|
||||
{ 'H', '<C-w>H', { desc = 'nach links verschieben' } },
|
||||
{ 'J', '<C-w>J', { desc = 'nach unten verschieben' } },
|
||||
{ 'K', '<C-w>K', { desc = 'nach oben verschieben' } },
|
||||
{ 'L', '<C-w>L', { desc = 'nach rechts verschieben' } },
|
||||
|
||||
-- Größe ändern
|
||||
{ '>', '<C-w>>', { desc = 'breiter' } },
|
||||
{ '<', '<C-w><', { desc = 'schmaler' } },
|
||||
{ '+', '<C-w>+', { desc = 'höher' } },
|
||||
{ '-', '<C-w>-', { desc = 'niedriger' } },
|
||||
{ '=', '<C-w>=', { desc = 'gleiche Größe' } },
|
||||
|
||||
-- Neue Fenster
|
||||
{ 's', '<C-w>s', { desc = 'horizontal teilen' } },
|
||||
{ 'v', '<C-w>v', { desc = 'vertikal teilen' } },
|
||||
{ 'n', '<cmd>new<CR>', { desc = 'neue horizontale Teilung' } },
|
||||
{ 'N', '<cmd>vnew<CR>', { desc = 'neue vertikale Teilung' } },
|
||||
|
||||
-- Fenster schließen
|
||||
{ 'c', '<C-w>c', { desc = 'schließen' } },
|
||||
{ 'o', '<C-w>o', { desc = 'andere schließen' } },
|
||||
|
||||
-- Beenden
|
||||
{ 'q', nil, { desc = 'beenden', exit = true } },
|
||||
{ '<Esc>', nil, { desc = 'beenden', exit = true } },
|
||||
}
|
||||
})
|
||||
|
||||
-- Harpoon Hydra
|
||||
Hydra({
|
||||
name = 'Harpoon',
|
||||
mode = 'n',
|
||||
body = '<leader>h',
|
||||
heads = {
|
||||
{ 'a', function() require("harpoon.mark").add_file() end, { desc = 'Datei hinzufügen' } },
|
||||
{ 'h', function() require("harpoon.ui").toggle_quick_menu() end, { desc = 'Menü anzeigen' } },
|
||||
{ 'n', function() require("harpoon.ui").nav_next() end, { desc = 'Nächste Datei' } },
|
||||
{ 'p', function() require("harpoon.ui").nav_prev() end, { desc = 'Vorherige Datei' } },
|
||||
{ '1', function() require("harpoon.ui").nav_file(1) end, { desc = 'Datei 1' } },
|
||||
{ '2', function() require("harpoon.ui").nav_file(2) end, { desc = 'Datei 2' } },
|
||||
{ '3', function() require("harpoon.ui").nav_file(3) end, { desc = 'Datei 3' } },
|
||||
{ '4', function() require("harpoon.ui").nav_file(4) end, { desc = 'Datei 4' } },
|
||||
{ '5', function() require("harpoon.ui").nav_file(5) end, { desc = 'Datei 5' } },
|
||||
{ 'q', nil, { desc = 'beenden', exit = true } },
|
||||
{ '<Esc>', nil, { desc = 'beenden', exit = true } },
|
||||
}
|
||||
})
|
||||
|
||||
-- Git-Operationen Hydra (funktioniert mit Gitsigns und Neogit)
|
||||
Hydra({
|
||||
name = 'Git',
|
||||
mode = 'n',
|
||||
body = '<leader>g',
|
||||
heads = {
|
||||
-- Gitsigns
|
||||
{ 'h', function() require("gitsigns").preview_hunk() end, { desc = 'Änderung anzeigen' } },
|
||||
{ 'n', function() require("gitsigns").next_hunk() end, { desc = 'Nächste Änderung' } },
|
||||
{ 'p', function() require("gitsigns").prev_hunk() end, { desc = 'Vorherige Änderung' } },
|
||||
{ 's', function() require("gitsigns").stage_hunk() end, { desc = 'Änderung stagen' } },
|
||||
{ 'u', function() require("gitsigns").undo_stage_hunk() end, { desc = 'Stagen rückgängig' } },
|
||||
{ 'r', function() require("gitsigns").reset_hunk() end, { desc = 'Änderung zurücksetzen' } },
|
||||
|
||||
-- Neogit
|
||||
{ 'g', function() require("neogit").open() end, { desc = 'Neogit öffnen', exit = true } },
|
||||
{ 'c', function() require("neogit").open({ "commit" }) end, { desc = 'Commit', exit = true } },
|
||||
{ 'P', function() require("neogit").open({ "push" }) end, { desc = 'Push', exit = true } },
|
||||
{ 'l', function() require("neogit").open({ "log" }) end, { desc = 'Log', exit = true } },
|
||||
|
||||
-- Diffview
|
||||
{ 'd', '<cmd>DiffviewOpen<CR>', { desc = 'Diff anzeigen', exit = true } },
|
||||
|
||||
-- Beenden
|
||||
{ 'q', nil, { desc = 'beenden', exit = true } },
|
||||
{ '<Esc>', nil, { desc = 'beenden', exit = true } },
|
||||
}
|
||||
})
|
||||
|
||||
-- Neo-tree Hydra
|
||||
Hydra({
|
||||
name = 'Explorer',
|
||||
mode = 'n',
|
||||
body = '<leader>E',
|
||||
heads = {
|
||||
{ 'e', '<cmd>Neotree toggle right<CR>', { desc = 'Explorer ein/aus', exit = true } },
|
||||
{ 'f', '<cmd>Neotree focus filesystem right<CR>', { desc = 'Dateisystem', exit = true } },
|
||||
{ 'b', '<cmd>Neotree focus buffers right<CR>', { desc = 'Buffer', exit = true } },
|
||||
{ 'g', '<cmd>Neotree focus git_status right<CR>', { desc = 'Git-Status', exit = true } },
|
||||
|
||||
-- Leap Integration
|
||||
{ 's', function()
|
||||
-- Öffne Neo-tree und springe mit Leap
|
||||
vim.cmd('Neotree focus filesystem right')
|
||||
-- Eine kleine Verzögerung, damit Neo-tree Zeit hat, zu öffnen
|
||||
vim.defer_fn(function()
|
||||
require('leap').leap { target_windows = { vim.api.nvim_get_current_win() } }
|
||||
end, 100)
|
||||
end,
|
||||
{ desc = 'Suchen mit Leap', exit = true }
|
||||
},
|
||||
|
||||
-- Beenden
|
||||
{ 'q', nil, { desc = 'beenden', exit = true } },
|
||||
{ '<Esc>', nil, { desc = 'beenden', exit = true } },
|
||||
}
|
||||
})
|
||||
|
||||
-- LSP und Coding-Hydra
|
||||
Hydra({
|
||||
name = 'Code',
|
||||
mode = 'n',
|
||||
body = '<leader>c',
|
||||
heads = {
|
||||
-- LSP Aktionen
|
||||
{ 'a', vim.lsp.buf.code_action, { desc = 'Code-Aktion' } },
|
||||
{ 'r', vim.lsp.buf.rename, { desc = 'Umbenennen' } },
|
||||
{ 'd', vim.lsp.buf.definition, { desc = 'Definition', exit = true } },
|
||||
{ 'D', vim.lsp.buf.declaration, { desc = 'Deklaration', exit = true } },
|
||||
{ 'i', vim.lsp.buf.implementation, { desc = 'Implementation', exit = true } },
|
||||
{ 'h', vim.lsp.buf.hover, { desc = 'Hover Info' } },
|
||||
{ 'f', function() require('conform').format() end, { desc = 'Formatieren' } },
|
||||
|
||||
-- Diagnostik
|
||||
{ 'n', vim.diagnostic.goto_next, { desc = 'Nächster Fehler' } },
|
||||
{ 'p', vim.diagnostic.goto_prev, { desc = 'Vorheriger Fehler' } },
|
||||
{ 'l', vim.diagnostic.open_float, { desc = 'Fehler anzeigen' } },
|
||||
|
||||
-- Beenden
|
||||
{ 'q', nil, { desc = 'beenden', exit = true } },
|
||||
{ '<Esc>', nil, { desc = 'beenden', exit = true } },
|
||||
}
|
||||
})
|
||||
|
||||
-- Erweiterte Navigation mit Leap und Harpoon
|
||||
Hydra({
|
||||
name = 'Navigation',
|
||||
mode = 'n',
|
||||
body = '<leader>n',
|
||||
heads = {
|
||||
-- Leap
|
||||
{ 'f', function() require('leap').leap { target_windows = { vim.api.nvim_get_current_win() } } end,
|
||||
{ desc = 'Leap vorwärts', exit = true } },
|
||||
{ 'F', function() require('leap').leap { backward = true, target_windows = { vim.api.nvim_get_current_win() } } end,
|
||||
{ desc = 'Leap rückwärts', exit = true } },
|
||||
{ 'w', function()
|
||||
require('leap').leap { target_windows = vim.tbl_filter(
|
||||
function(win) return vim.api.nvim_win_get_config(win).relative == '' end,
|
||||
vim.api.nvim_list_wins()
|
||||
) }
|
||||
end, { desc = 'Leap alle Fenster', exit = true } },
|
||||
|
||||
-- Harpoon
|
||||
{ 'h', function() require("harpoon.ui").toggle_quick_menu() end, { desc = 'Harpoon-Menü', exit = true } },
|
||||
{ '1', function() require("harpoon.ui").nav_file(1) end, { desc = 'Harpoon 1', exit = true } },
|
||||
{ '2', function() require("harpoon.ui").nav_file(2) end, { desc = 'Harpoon 2', exit = true } },
|
||||
{ '3', function() require("harpoon.ui").nav_file(3) end, { desc = 'Harpoon 3', exit = true } },
|
||||
{ '4', function() require("harpoon.ui").nav_file(4) end, { desc = 'Harpoon 4', exit = true } },
|
||||
|
||||
-- Dateiexploration
|
||||
{ 'e', '<cmd>Neotree toggle right<CR>', { desc = 'Explorer', exit = true } },
|
||||
{ 't', '<cmd>Telescope find_files<CR>', { desc = 'Dateien suchen', exit = true } },
|
||||
{ 'g', '<cmd>Telescope live_grep<CR>', { desc = 'Inhalte suchen', exit = true } },
|
||||
|
||||
-- Beenden
|
||||
{ 'q', nil, { desc = 'beenden', exit = true } },
|
||||
{ '<Esc>', nil, { desc = 'beenden', exit = true } },
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user