diff --git a/nvim/.config/nvim/lua/fs/keymap.lua b/nvim/.config/nvim/lua/fs/keymap.lua index ff18606..fc85151 100644 --- a/nvim/.config/nvim/lua/fs/keymap.lua +++ b/nvim/.config/nvim/lua/fs/keymap.lua @@ -1,24 +1,25 @@ local M = {} +local nvim_set_keymap = vim.api.nvim_set_keymap +local nvim_buf_set_keymap = vim.api.nvim_buf_set_keymap + local extend = function(opts) return vim.tbl_extend('keep', opts or {}, { noremap = true }) end -M.nmap = function(tbl) - vim.api.nvim_set_keymap('n', tbl[1], tbl[2], extend(tbl[3])) +local map = function(mode, lhs, rhs, opts) + nvim_set_keymap(mode, lhs, rhs, extend(opts)) end -M.imap = function(tbl) - vim.api.nvim_set_keymap('n', tbl[1], tbl[2], extend(tbl[3])) +local buf_map = function(mode, lhs, rhs, opts) + nvim_buf_set_keymap(0, mode, lhs, rhs, extend(opts)) end -M.buffer_nmap = function(tbl) - vim.api.nvim_buf_set_keymap(0, 'n', tbl[1], tbl[2], extend(tbl[3])) -end - -M.buffer_imap = function(tbl) - vim.api.nvim_buf_set_keymap(0, 'i', tbl[1], tbl[2], extend(tbl[3])) -end +M.nmap = function(tbl) map('n', tbl[1], tbl[2], tbl[3]) end +M.imap = function(tbl) map('i', tbl[1], tbl[2], tbl[3]) end +M.vmap = function(tbl) map('v', tbl[1], tbl[2], tbl[3]) end +M.buffer_nmap = function(tbl) buf_map('n', tbl[1], tbl[2], tbl[3]) end +M.buffer_imap = function(tbl) buf_map('i', tbl[1], tbl[2], tbl[3]) end return M diff --git a/nvim/.config/nvim/lua/fs/keymaps.lua b/nvim/.config/nvim/lua/fs/keymaps.lua index ef70e05..5b6a0ec 100644 --- a/nvim/.config/nvim/lua/fs/keymaps.lua +++ b/nvim/.config/nvim/lua/fs/keymaps.lua @@ -1,70 +1,56 @@ -local M = function(mode, lhs, rhs, opts) - local merged_opts = vim.tbl_extend('keep', opts or {}, { noremap = true }) - local map = { mode = mode, lhs = lhs, rhs = rhs, opts = merged_opts } - map.remap = function() map.opts.noremap = false; return map end - map.silent = function() map.opts.silent = true; return map end - map.expr = function() map.opts.expr = true; return map end - map.unique = function() map.opts.unique = true; return map end - map.nowait = function() map.opts.nowait = true; return map end - map.script = function() map.opts.script = true; return map end - return map -end - -local register = function(maps) - for _, m in ipairs(maps) do - vim.api.nvim_set_keymap(m.mode, m.lhs, m.rhs, m.opts) - end -end +local keymap = require 'fs.keymap' +local nmap = keymap.nmap +local imap = keymap.imap +local vmap = keymap.vmap vim.g.mapleader = ' ' -register { - -- better navigation for wrapped lines - M('n', 'j', 'gj'), - M('n', 'k', 'gk'), +-- better navigation for wrapped lines +nmap { 'j', 'gj' } +nmap { 'k', 'gk' } - -- retain selection when indenting/unindenting in visual mode - M('v', '>', '>gv'), - M('v', '<', '<gv'), +-- retain selection when indenting/unindenting in visual mode +vmap { '>', '>gv' } +vmap { '<', '<gv' } - -- easier window navigation - M('n', '', 'j'), - M('n', '', 'k'), - M('n', '', 'h'), - M('n', '', 'l'), +-- easier window navigation +nmap { '', 'j' } +nmap { '', 'k' } +nmap { '', 'h' } +nmap { '', 'l' } - -- window resizing - M('n', '', 'resize +1'), - M('n', '', 'resize -1'), - M('n', '', 'vertical resize -1'), - M('n', '', 'vertical resize +1'), +-- window resizing +nmap { '', 'resize +1' } +nmap { '', 'resize -1' } +nmap { '', 'vertical resize -1' } +nmap { '', 'vertical resize +1' } - -- easier tab navigation - M('n', '', ':tabprevious').silent(), - M('n', '', ':tabnext' ).silent(), +-- easier tab navigation +nmap { '', 'tabprevious', { silent = true } } +nmap { '', 'tabnext' , { silent = true } } - -- move lines up and down - M('n', '', [[:move .+1==]] ).silent(), - M('n', '', [[:move .-2==]] ).silent(), - M('v', '', [[:move '>+1gv=gv]] ).silent(), - M('v', '', [[:move '<-2gv=gv]] ).silent(), - M('i', '', [[:move .+1==gi]] ).silent(), - M('i', '', [[:move .-2==gi]] ).silent(), +-- move lines up and down +nmap { '', [[:move .+1==]] , { silent = true } } +nmap { '', [[:move .-2==]] , { silent = true } } +vmap { '', [[:move '>+1gv=gv]], { silent = true } } +vmap { '', [[:move '<-2gv=gv]], { silent = true } } +imap { '', [[:move .+1==gi]] , { silent = true } } +imap { '', [[:move .-2==gi]] , { silent = true } } - -- cycle through line numbering modes - M('n', 'ln', ':set nonumber norelativenumber' ).silent(), - M('n', 'll', ':set number norelativenumber' ).silent(), - M('n', 'lr', ':set number relativenumber' ).silent(), +-- cycle through line numbering modes +nmap { 'ln', 'set nonumber norelativenumber' , { silent = true } } +nmap { 'll', 'set number norelativenumber' , { silent = true } } +nmap { 'lr', 'set number relativenumber' , { silent = true } } - -- show list of buffers and prepare to switch - M('n', 'bf', ':ls:b'), +-- show list of buffers and prepare to switch +nmap { 'bf', 'ls:b' } - -- quickly change background - M('n', 'bg', [[:let &background = &background ==? 'light' ? 'dark' : 'light']]), +-- quickly change background +nmap { 'bg', [[let &background = &background ==? 'light' ? 'dark' : 'light']] } - -- disable highlight until next search - M('n', 'h', ':nohlsearch'), +-- disable highlight until next search +nmap { 'h', 'nohlsearch' } + +-- edit init.lua +nmap { 'v', 'e $MYVIMRC' } - -- edit init.lua - M('n', 'v', ':e $MYVIMRC'), -}