aboutsummaryrefslogtreecommitdiffstats
path: root/nvim/lua/keymap.lua
blob: fbd4898a9cef2fbd275108a7b041ce2deb6860df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
-- Provides convienent lua methods for binding keys
-- Source: Primeagen
local M = {}

local function bind(op, outer_opts)
    outer_opts = outer_opts or {noremap = true}
    return function(lhs, rhs, opts)
        opts = vim.tbl_extend("force",
            outer_opts,
            opts or {}
        )
        vim.keymap.set(op, lhs, rhs, opts)
    end
end

M.nmap = bind("n", {noremap = false})
M.nnoremap = bind("n")
M.vnoremap = bind("v")
M.xnoremap = bind("x")
M.inoremap = bind("i")

M.nnoremap("gf", function() vim.cmd([[:e <cfile>]]) end)
M.nnoremap("<Leader>q", function() vim.cmd(':botright cope') end)
M.nnoremap("<Leader>l", function()
    local success, err_msg = pcall(function()
        vim.cmd(':aboveleft lope')
    end)
    if not success then
        err_msg = string.match(tostring(err_msg), "E%d+.*")
        vim.api.nvim_err_writeln(err_msg)
    end
end)
M.nnoremap("<leader>ef", function()
    vim.cmd('Vexplore')
end)

return M