{ pkgs, config, ... }: { # output.plugins = with pkgs.vimPlugins; [ vim-fugitive vim-flog gitlinker-nvim gitsigns-nvim committia-vim ]; vim.keybindings.keybindings."".g = { s = { command = "Git"; label = "Git status"; }; w = { command = "Gwrite"; label = "Git add"; }; c = { command = "Git commit"; label = "Git commit"; }; d = { command = "Gdiffsplit"; label = "Git diff"; }; p = { l = { command = "Git pull"; label = "Git pull"; }; u = { command = "15 split|term git push"; label = "Git push"; }; }; l = { command = "lua require('gitlinker').get_buf_range_url(vim.fn.mode())"; options.silent = true; mode = ""; label = "get git permlink"; }; b = { command = "lua require('gitlinker').get_repo_url({action_callback = require('gitlinker').actions.open_in_browser})"; options.silent = true; label = "browse repo in browser"; }; }; plugin.setup.gitlinker = {}; plugin.setup.gitsigns = { signs = { add = { hl = "GitSignsAdd"; text = "+"; numhl = "GitSignsAddNr"; linehl = "GitSignsAddLn"; }; change = { hl = "GitSignsChange"; text = "~"; numhl = "GitSignsChangeNr"; linehl = "GitSignsChangeLn"; }; delete = { hl = "GitSignsDelete"; text = "_"; numhl = "GitSignsDeleteNr"; linehl = "GitSignsDeleteLn"; }; topdelete = { hl = "GitSignsDelete"; text = "‾"; numhl = "GitSignsDeleteNr"; linehl = "GitSignsDeleteLn"; }; changedelete = { hl = "GitSignsChange"; text = "│"; numhl = "GitSignsChangeNr"; linehl = "GitSignsChangeLn"; }; }; word_diff = true; }; extraLuaModules = ["config.gitsigns"]; }