parent
78e145660a
commit
1569339c0e
|
|
@ -41,4 +41,5 @@ vim.o.expandtab = true
|
||||||
local set = vim.opt_local
|
local set = vim.opt_local
|
||||||
set.shiftwidth = 2
|
set.shiftwidth = 2
|
||||||
vim.o.shiftwidth = 2
|
vim.o.shiftwidth = 2
|
||||||
|
vim.keymap.set('n', '<leader>yb', '<cmd>let @+ = expand("%")<CR>', { desc = 'yank to plus register current relative path' })
|
||||||
return {}
|
return {}
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,7 @@ vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = tr
|
||||||
-- See `:help vim.highlight.on_yank()`
|
-- See `:help vim.highlight.on_yank()`
|
||||||
local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true })
|
local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true })
|
||||||
vim.api.nvim_create_autocmd('TextYankPost', {
|
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||||
callback = function()
|
callback = function() vim.highlight.on_yank() end,
|
||||||
vim.highlight.on_yank()
|
|
||||||
end,
|
|
||||||
group = highlight_group,
|
group = highlight_group,
|
||||||
pattern = '*',
|
pattern = '*',
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,58 +1,75 @@
|
||||||
-- Adds git related signs to the gutter, as well as utilities for managing changes
|
-- Alternatively, use `config = function() ... end` for full control over the configuration.
|
||||||
-- NOTE: gitsigns is already included in init.lua but contains only the base
|
-- If you prefer to call `setup` explicitly, use:
|
||||||
-- config. This will add also the recommended keymaps.
|
-- {
|
||||||
|
-- 'lewis6991/gitsigns.nvim',
|
||||||
---@module 'lazy'
|
-- config = function()
|
||||||
---@type LazySpec
|
-- require('gitsigns').setup({
|
||||||
|
-- -- Your gitsigns configuration here
|
||||||
|
-- })
|
||||||
|
-- end,
|
||||||
|
-- }
|
||||||
|
--
|
||||||
|
-- Here is a more advanced example where we pass configuration
|
||||||
|
-- options to `gitsigns.nvim`.
|
||||||
|
--
|
||||||
|
-- See `:help gitsigns` to understand what the configuration keys do
|
||||||
return {
|
return {
|
||||||
'lewis6991/gitsigns.nvim',
|
{ -- Adds git related signs to the gutter, as well as utilities for managing changes
|
||||||
---@module 'gitsigns'
|
'lewis6991/gitsigns.nvim',
|
||||||
---@type Gitsigns.Config
|
opts = {
|
||||||
---@diagnostic disable-next-line: missing-fields
|
signs = {
|
||||||
opts = {
|
add = { text = '+' },
|
||||||
on_attach = function(bufnr)
|
change = { text = '~' },
|
||||||
local gitsigns = require 'gitsigns'
|
delete = { text = '_' },
|
||||||
|
topdelete = { text = '‾' },
|
||||||
|
changedelete = { text = '~' },
|
||||||
|
},
|
||||||
|
current_line_blame = true,
|
||||||
|
on_attach = function(bufnr)
|
||||||
|
local gitsigns = require 'gitsigns'
|
||||||
|
|
||||||
local function map(mode, l, r, opts)
|
local function map(mode, l, r, opts)
|
||||||
opts = opts or {}
|
opts = opts or {}
|
||||||
opts.buffer = bufnr
|
opts.buffer = bufnr
|
||||||
vim.keymap.set(mode, l, r, opts)
|
vim.keymap.set(mode, l, r, opts)
|
||||||
end
|
|
||||||
|
|
||||||
-- Navigation
|
|
||||||
map('n', ']c', function()
|
|
||||||
if vim.wo.diff then
|
|
||||||
vim.cmd.normal { ']c', bang = true }
|
|
||||||
else
|
|
||||||
gitsigns.nav_hunk 'next'
|
|
||||||
end
|
end
|
||||||
end, { desc = 'Jump to next git [c]hange' })
|
|
||||||
|
|
||||||
map('n', '[c', function()
|
-- Navigation
|
||||||
if vim.wo.diff then
|
map('n', ']c', function()
|
||||||
vim.cmd.normal { '[c', bang = true }
|
if vim.wo.diff then
|
||||||
else
|
vim.cmd.normal { ']c', bang = true }
|
||||||
gitsigns.nav_hunk 'prev'
|
else
|
||||||
end
|
gitsigns.nav_hunk 'next'
|
||||||
end, { desc = 'Jump to previous git [c]hange' })
|
end
|
||||||
|
end, { desc = 'Jump to next git [c]hange' })
|
||||||
|
|
||||||
-- Actions
|
map('n', '[c', function()
|
||||||
-- visual mode
|
if vim.wo.diff then
|
||||||
map('v', '<leader>hs', function() gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = 'git [s]tage hunk' })
|
vim.cmd.normal { '[c', bang = true }
|
||||||
map('v', '<leader>hr', function() gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = 'git [r]eset hunk' })
|
else
|
||||||
-- normal mode
|
gitsigns.nav_hunk 'prev'
|
||||||
map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
|
end
|
||||||
map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
|
end, { desc = 'Jump to previous git [c]hange' })
|
||||||
map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' })
|
|
||||||
map('n', '<leader>hu', gitsigns.stage_hunk, { desc = 'git [u]ndo stage hunk' })
|
-- Actions
|
||||||
map('n', '<leader>hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' })
|
-- visual mode
|
||||||
map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' })
|
map('v', '<leader>hs', function() gitsigns.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = 'git [s]tage hunk' })
|
||||||
map('n', '<leader>hb', gitsigns.blame_line, { desc = 'git [b]lame line' })
|
map('v', '<leader>hr', function() gitsigns.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } end, { desc = 'git [r]eset hunk' })
|
||||||
map('n', '<leader>hd', gitsigns.diffthis, { desc = 'git [d]iff against index' })
|
-- normal mode
|
||||||
map('n', '<leader>hD', function() gitsigns.diffthis '@' end, { desc = 'git [D]iff against last commit' })
|
map('n', '<leader>hs', gitsigns.stage_hunk, { desc = 'git [s]tage hunk' })
|
||||||
-- Toggles
|
map('n', '<leader>hr', gitsigns.reset_hunk, { desc = 'git [r]eset hunk' })
|
||||||
map('n', '<leader>tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' })
|
map('n', '<leader>hS', gitsigns.stage_buffer, { desc = 'git [S]tage buffer' })
|
||||||
map('n', '<leader>tD', gitsigns.preview_hunk_inline, { desc = '[T]oggle git show [D]eleted' })
|
map('n', '<leader>hu', gitsigns.stage_hunk, { desc = 'git [u]ndo stage hunk' })
|
||||||
end,
|
map('n', '<leader>hR', gitsigns.reset_buffer, { desc = 'git [R]eset buffer' })
|
||||||
|
map('n', '<leader>hp', gitsigns.preview_hunk, { desc = 'git [p]review hunk' })
|
||||||
|
map('n', '<leader>hb', gitsigns.blame_line, { desc = 'git [b]lame line' })
|
||||||
|
map('n', '<leader>hd', gitsigns.diffthis, { desc = 'git [d]iff against index' })
|
||||||
|
map('n', '<leader>hD', function() gitsigns.diffthis '@' end, { desc = 'git [D]iff against last commit' })
|
||||||
|
-- Toggles
|
||||||
|
map('n', '<leader>tb', gitsigns.toggle_current_line_blame, { desc = '[T]oggle git show [b]lame line' })
|
||||||
|
map('n', '<leader>tD', gitsigns.preview_hunk_inline, { desc = '[T]oggle git show [D]eleted' })
|
||||||
|
end,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
-- vim: ts=2 sts=2 sw=2 et
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue