vim: move keymap for fugitive and neogit
This commit is contained in:
parent
d8e121ca15
commit
0518e45330
3 changed files with 50 additions and 41 deletions
|
@ -1,3 +1,5 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
local diagnostic = require 'fschauen.diagnostic'
|
local diagnostic = require 'fschauen.diagnostic'
|
||||||
local window = require 'fschauen.window'
|
local window = require 'fschauen.window'
|
||||||
|
|
||||||
|
@ -11,9 +13,7 @@ local toggle_relativenumber = function()
|
||||||
vim.wo.number = vim.wo.relativenumber or vim.wo.number
|
vim.wo.number = vim.wo.relativenumber or vim.wo.number
|
||||||
end
|
end
|
||||||
|
|
||||||
M = {}
|
local keymap = {
|
||||||
|
|
||||||
local base = {
|
|
||||||
-- better navigation for wrapped lines
|
-- better navigation for wrapped lines
|
||||||
{ 'j', 'gj' },
|
{ 'j', 'gj' },
|
||||||
{ 'k', 'gk' },
|
{ 'k', 'gk' },
|
||||||
|
@ -66,11 +66,15 @@ local base = {
|
||||||
-- move to begin of line in command mode (<c-e> moves to end by default)
|
-- move to begin of line in command mode (<c-e> moves to end by default)
|
||||||
{ '<c-a>', '<c-b>', 'c' },
|
{ '<c-a>', '<c-b>', 'c' },
|
||||||
|
|
||||||
-- navigate items in quickfix and location lists
|
-- more convenient way of entering normal mode from terminal mode
|
||||||
{ '<leader>j', '<cmd>cnext<cr>zz' },
|
{ [[<c-\><c-\>]], [[<c-\><c-n>]], 't' },
|
||||||
{ '<leader>k', '<cmd>cprevious<cr>zz' },
|
|
||||||
{ '<localleader>j', '<cmd>lnext<cr>zz' },
|
-- recall older/recent command-line from history
|
||||||
{ '<localleader>k', '<cmd>lprevious<cr>zz' },
|
{ '<c-j>', '<down>', 'c' },
|
||||||
|
{ '<c-k>', '<up>', 'c' },
|
||||||
|
|
||||||
|
-- quickly change background
|
||||||
|
{ '<leader>bg', [[<cmd>let &background = &background ==? 'light' ? 'dark' : 'light'<cr>]] },
|
||||||
|
|
||||||
-- navigate diagnostics
|
-- navigate diagnostics
|
||||||
{ '<leader>dj', diagnostic.goto_next },
|
{ '<leader>dj', diagnostic.goto_next },
|
||||||
|
@ -79,6 +83,25 @@ local base = {
|
||||||
{ '<leader>do', diagnostic.open_float },
|
{ '<leader>do', diagnostic.open_float },
|
||||||
{ '<leader>dh', diagnostic.hide },
|
{ '<leader>dh', diagnostic.hide },
|
||||||
|
|
||||||
|
fugitive = {
|
||||||
|
{ '<leader>gg', ':Git ' },
|
||||||
|
{ '<leader>gs', '<cmd>tab Git<cr>' },
|
||||||
|
{ '<leader>gb', '<cmd>Git blame<cr>' }
|
||||||
|
},
|
||||||
|
|
||||||
|
neogit = {
|
||||||
|
{ '<leader>gn', '<cmd>Neogit<cr>' },
|
||||||
|
},
|
||||||
|
|
||||||
|
-- disable highlight until next search
|
||||||
|
{ '<leader>h', '<cmd>nohlsearch<cr><esc>' },
|
||||||
|
|
||||||
|
-- navigate items in quickfix and location lists
|
||||||
|
{ '<leader>j', '<cmd>cnext<cr>zz' },
|
||||||
|
{ '<leader>k', '<cmd>cprevious<cr>zz' },
|
||||||
|
{ '<localleader>j', '<cmd>lnext<cr>zz' },
|
||||||
|
{ '<localleader>k', '<cmd>lprevious<cr>zz' },
|
||||||
|
|
||||||
-- toggle quickfix and loclist
|
-- toggle quickfix and loclist
|
||||||
{ '<leader>ll', window.toggle_quickfix, desc = 'Toggle quickfix' },
|
{ '<leader>ll', window.toggle_quickfix, desc = 'Toggle quickfix' },
|
||||||
{ '<localleader>ll', window.toggle_loclist, desc = 'Toggle loclist' },
|
{ '<localleader>ll', window.toggle_loclist, desc = 'Toggle loclist' },
|
||||||
|
@ -92,32 +115,27 @@ local base = {
|
||||||
{ '<leader>sl', '<cmd>set list! | set list?<CR>' },
|
{ '<leader>sl', '<cmd>set list! | set list?<CR>' },
|
||||||
{ '<leader>sw', '<cmd>set wrap! | set wrap?<CR>' },
|
{ '<leader>sw', '<cmd>set wrap! | set wrap?<CR>' },
|
||||||
{ '<leader>ss', '<cmd>set spell! | set spell?<CR>' },
|
{ '<leader>ss', '<cmd>set spell! | set spell?<CR>' },
|
||||||
|
|
||||||
-- quickly change background
|
|
||||||
{ '<leader>bg', [[<cmd>let &background = &background ==? 'light' ? 'dark' : 'light'<cr>]] },
|
|
||||||
|
|
||||||
-- disable highlight until next search
|
|
||||||
{ '<leader>h', '<cmd>nohlsearch<cr><esc>' },
|
|
||||||
|
|
||||||
-- more convenient way of entering normal mode from terminal mode
|
|
||||||
{ [[<c-\><c-\>]], [[<c-\><c-n>]], 't' },
|
|
||||||
|
|
||||||
-- recall older/recent command-line from history
|
|
||||||
{ '<c-j>', '<down>', 'c' },
|
|
||||||
{ '<c-k>', '<up>', 'c' },
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local keymap_set = vim.keymap.set
|
M.setup = function()
|
||||||
local map = function(opts)
|
local keymap_set = vim.keymap.set
|
||||||
|
local set = function(opts)
|
||||||
local lhs, rhs, mode = opts[1], opts[2], opts[3] or 'n'
|
local lhs, rhs, mode = opts[1], opts[2], opts[3] or 'n'
|
||||||
opts[1], opts[2], opts[3], opts.mode = nil, nil, nil, nil
|
opts[1], opts[2], opts[3], opts.mode = nil, nil, nil, nil
|
||||||
opts.silent = opts.silent ~= false
|
opts.silent = opts.silent ~= false
|
||||||
keymap_set(mode, lhs, rhs, opts)
|
keymap_set(mode, lhs, rhs, opts)
|
||||||
|
end
|
||||||
|
|
||||||
|
for _, mapping in ipairs(keymap) do
|
||||||
|
set(mapping)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
M.setup = function()
|
setmetatable(M, {
|
||||||
vim.tbl_map(map, base)
|
__index = function (_, k)
|
||||||
end
|
return keymap[k]
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,5 @@
|
||||||
return {
|
return {
|
||||||
'tpope/vim-fugitive',
|
'tpope/vim-fugitive',
|
||||||
|
keys = require('fschauen.keymap').fugitive
|
||||||
keys = {
|
|
||||||
{ '<leader>gg', ':Git ' },
|
|
||||||
{ '<leader>gs', '<cmd>tab Git<cr>' },
|
|
||||||
{ '<leader>gb', '<cmd>Git blame<cr>' }
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
return {
|
return {
|
||||||
'NeogitOrg/neogit',
|
'NeogitOrg/neogit',
|
||||||
|
keys = require('fschauen.keymap').neogit,
|
||||||
opts = {
|
opts = {
|
||||||
disable_hint = true,
|
disable_hint = true,
|
||||||
signs = {
|
signs = {
|
||||||
|
@ -15,8 +15,4 @@ return {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
keys = {
|
|
||||||
{ '<leader>gn', '<cmd>Neogit<cr>' },
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue