commit 50f5838365a2456bb039ee09bae64d0d7e178364
parent 58ea0d7bd69dbad1527d0bb17e813bb2c7c0e3d1
Author: Tomas Nemec <nemi@skaut.cz>
Date: Wed, 20 Oct 2021 00:05:49 +0200
update
Diffstat:
14 files changed, 299 insertions(+), 387 deletions(-)
diff --git a/ftplugin/dart.lua b/ftplugin/dart.lua
@@ -1,5 +1,3 @@
-local kb = require('tms.c.keybind')
-
vim.g.dart_style_guide = 2
vim.g.dart_html_in_string = true
@@ -7,9 +5,12 @@ vim.cmd [[command! -buffer DartAnalyzer lua require('tms.ft.dart.analyze').qf213
vim.cmd [[command! -buffer DartDebug lua require('tms.ft.dart.debug').func()]]
vim.cmd [[command! -buffer DartPrint lua require('tms.ft.dart.debug').print()]]
vim.cmd [[command! -buffer DartOrganizeImports lua require('tms.ft.dart.lsp').organize_imports()]]
+vim.cmd [[command! -buffer DartFixAll lua require('tms.ft.dart.lsp').fix_all()]]
+vim.cmd [[command! -buffer DartExtract lua require('tms.ft.dart.lsp').extract()]]
-kb.bnnoremap(0, '<leader>pp', [[<cmd>DartPrint<cr>]])
-kb.bnnoremap(0, '<leader>po', [[<cmd>DartOrganizeImports<cr>]])
+vim.keymap.nnoremap {'<leader>pp', [[<cmd>DartPrint<cr>]], ['buffer'] = true}
+vim.keymap.nnoremap {'<leader>po', [[<cmd>DartOrganizeImports<cr>]], ['buffer'] = true}
+vim.keymap.nnoremap {'<leader>pf', [[<cmd>DartFixAll<cr>]], ['buffer'] = true}
if vim.fn.getline(1):match('^#!.*dcli') then
vim.cmd [[comp dcli]]
diff --git a/init.lua b/init.lua
@@ -4,6 +4,8 @@ if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
vim.api.nvim_command('!git clone https://github.com/wbthomason/packer.nvim ' .. install_path)
end
+vim.cmd [[runtime plugin/astronauta.vim]]
+
local colors = require('tms.colors')
vim.g.mapleader = ','
vim.cmd('syntax enable')
@@ -52,41 +54,25 @@ vim.opt.foldlevel = 999
vim.opt.foldmethod = 'indent'
vim.opt.foldtext = 'MyFoldText()'
vim.opt.list = false
-vim.opt.laststatus = 0
+vim.opt.laststatus = 1
vim.opt.statusline = ' '
-vim.opt.listchars = {
- space = '·',
- tab = '» ',
- extends = '›',
- precedes = '‹',
- nbsp = '_',
- trail = '_',
- eol = '$',
-}
-vim.opt.fillchars = {
- eob = '•',
- fold = ' ',
-}
+vim.opt.listchars = {space = '·', tab = '» ', extends = '›', precedes = '‹', nbsp = '_', trail = '_', eol = '$'}
+vim.opt.fillchars = {eob = '•', fold = ' '}
vim.opt.number = false
vim.opt.scrolloff = 5
vim.opt.sidescrolloff = 5
vim.opt.signcolumn = 'yes:1'
-- MAPPINGS
-local kb = require('astronauta.keymap')
-local nmap = kb.nmap
-local nnoremap = kb.nnoremap
-local tnoremap = kb.tnoremap
-local vnoremap = kb.vnoremap
-local inoremap = kb.inoremap
+local nmap = vim.keymap.nmap
+local nnoremap = vim.keymap.nnoremap
+local tnoremap = vim.keymap.tnoremap
+local vnoremap = vim.keymap.vnoremap
+local inoremap = vim.keymap.inoremap
-- forget visual
nmap {'Q', '<nop>'}
-- kb.nnoremap('<tab>', 'za')
-nmap {
- '<esc>',
- '<cmd>nohl<cr>',
- silent = true,
-}
+nmap {'<esc>', '<cmd>nohl<cr>', silent = true}
nnoremap {'gA', 'ga'}
nnoremap {'Y', 'y$'}
nnoremap {'n', 'nzzzv'}
@@ -122,21 +108,9 @@ nnoremap {'<a-J>', '<c-w>J'}
nnoremap {'<a-K>', '<c-w>K'}
nnoremap {'<a-L>', '<c-w>L'}
-- window split
-nnoremap {
- '<c-w><c-s>',
- require('tms.p.vifm').split,
- silent = true,
-}
-nnoremap {
- '<c-w><c-v>',
- require('tms.p.vifm').vsplit,
- silent = true,
-}
-nnoremap {
- '<c-w><c-w>',
- require('tms.p.vifm').current,
- silent = true,
-}
+nnoremap {'<c-w><c-s>', require('tms.p.vifm').split, silent = true}
+nnoremap {'<c-w><c-v>', require('tms.p.vifm').vsplit, silent = true}
+nnoremap {'<c-w><c-w>', require('tms.p.vifm').current, silent = true}
nnoremap {'<c-w>V', '<cmd>vnew<cr>'}
nnoremap {'<c-w>S', '<cmd>new<cr>'}
-- line movement
diff --git a/lua/tms/c/keybind.lua b/lua/tms/c/keybind.lua
@@ -1,123 +0,0 @@
-local api = vim.api
-local kb = api.nvim_set_keymap
-local kbb = api.nvim_buf_set_keymap
-
-local globalListenerName = 'TMS_KEYBIND' -- change this to be unique across multiple plugin name
-local kbhandlers = {}
-_G[globalListenerName] = function(i) kbhandlers[i]() end
-
-local id = 0
-local function createCmd(fn)
- id = id + 1
- kbhandlers[id] = fn
- return '<cmd>lua ' .. globalListenerName .. '(' .. id .. ')<cr>'
-end
-
-local function expand_rhs(rhs)
- if type(rhs) == 'function' then return createCmd(rhs) end
- return rhs
-end
-
-local function add(mode, lhs, rhs, opt)
- if type(lhs) == 'table' then
- for _, v in ipairs(lhs) do kb(mode, v, expand_rhs(rhs), opt) end
- else
- kb(mode, lhs, expand_rhs(rhs), opt)
- end
-end
-
-local function badd(bufnr, mode, lhs, rhs, opt)
- if type(lhs) == 'table' then
- for _, v in ipairs(lhs) do kbb(bufnr, mode, v, expand_rhs(rhs), opt) end
- else
- kbb(bufnr, mode, lhs, expand_rhs(rhs), opt)
- end
-end
-
-local function nmap(lhs, rhs, options) add('n', lhs, rhs, options or {}) end
-local function imap(lhs, rhs, options) add('i', lhs, rhs, options or {}) end
-local function tmap(lhs, rhs, options) add('t', lhs, rhs, options or {}) end
-local function vmap(lhs, rhs, options) add('v', lhs, rhs, options or {}) end
-local function xmap(lhs, rhs, options) add('x', lhs, rhs, options or {}) end
-local function omap(lhs, rhs, options) add('o', lhs, rhs, options or {}) end
-local function smap(lhs, rhs, options) add('s', lhs, rhs, options or {}) end
-
-local function nnoremap(lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- add('n', lhs, rhs, options)
-end
-
-local function tnoremap(lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- add('t', lhs, rhs, options)
-end
-
-local function inoremap(lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- add('i', lhs, rhs, options)
-end
-
-local function vnoremap(lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- add('v', lhs, rhs, options)
-end
-
-local function snoremap(lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- add('s', lhs, rhs, options)
-end
-
-local function bnnoremap(bufn, lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- badd(bufn or 0, 'n', lhs, rhs, options)
-end
-
-local function btnoremap(bufn, lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- badd(bufn or 0, 't', lhs, rhs, options)
-end
-
-local function binoremap(bufn, lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- badd(bufn or 0, 'i', lhs, rhs, options)
-end
-
-local function bvnoremap(bufn, lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- badd(bufn or 0, 'v', lhs, rhs, options)
-end
-
-local function bsnoremap(bufn, lhs, rhs, options)
- options = options or {}
- options['noremap'] = true
- badd(bufn or 0, 's', lhs, rhs, options)
-end
-
-return {
- nmap = nmap,
- imap = imap,
- tmap = tmap,
- vmap = vmap,
- omap = omap,
- xmap = xmap,
- smap = smap,
- nnoremap = nnoremap,
- tnoremap = tnoremap,
- inoremap = inoremap,
- vnoremap = vnoremap,
- snoremap = snoremap,
- bnnoremap = bnnoremap,
- btnoremap = btnoremap,
- binoremap = binoremap,
- bvnoremap = bvnoremap,
- bsnoremap = bsnoremap,
-}
diff --git a/lua/tms/ft/dart/lsp.lua b/lua/tms/ft/dart/lsp.lua
@@ -3,15 +3,28 @@ local api = vim.api
local M = {}
-M.organize_imports = function()
+local execute_command = function(command)
local cur_buf = api.nvim_get_current_buf()
local cur_buf_name = api.nvim_buf_get_name(cur_buf)
- local params = {
- command = 'edit.organizeImports',
- arguments = {cur_buf_name},
- title = '',
- }
+ local params = {command = command, arguments = {cur_buf_name}, title = ''}
lsp.buf_request_sync(cur_buf, 'workspace/executeCommand', params, 1500)
end
+M.organize_imports = function() execute_command('edit.organizeImports') end
+M.fix_all = function() execute_command('edit.fixAll') end
+-- TODO(tms) 20.10.2021:
+M.extract = function()
+ local cur_buf = api.nvim_get_current_buf()
+ local cur_buf_name = api.nvim_buf_get_name(cur_buf)
+ local range = vim.lsp.util.make_range_params()
+ local params = {command = 'refactor.perform', arguments = {'EXTRACT_METHOD', cur_buf_name, range}, title = ''}
+ dump(lsp.get_active_clients()[1].request('codeAction/resolve', 'EXTRACT_METHOD', function(err, resolved_action)
+ if err then
+ vim.notify(err.code .. ': ' .. err.message, vim.log.levels.ERROR)
+ return
+ end
+ -- apply_action(resolved_action, client)
+ end, cur_buf))
+end
+
return M
diff --git a/lua/tms/lsp/init.lua b/lua/tms/lsp/init.lua
@@ -1,4 +1,3 @@
-local kb = require('tms.c.keybind')
local efm = require('tms.lsp.efm')
local handlers = require('tms.lsp.handlers')
local servers = require('tms.lsp.servers')
@@ -6,43 +5,43 @@ local servers = require('tms.lsp.servers')
local M = {}
local keybind = function(bufnr)
- local o = {silent = true}
- local oe = {silent = true, expr = true}
local t = '<cmd>lua require("tms.p.telescope")'
local l = '<cmd>lua vim.lsp'
local h = '<cmd>lua require("tms.lsp.handlers")'
- kb.bnnoremap(bufnr, 'gd', t .. '.b.lsp_definitions()<cr>', o)
- kb.bnnoremap(bufnr, 'gD', '<cmd>vsplit | lua vim.lsp.buf.definition()<cr>', o)
- kb.bnnoremap(bufnr, 'gi', l .. '.buf.implementation()<cr>', o)
+ vim.keymap.nnoremap {'gd', l .. '.buf.definition()<cr>', buffer = bufnr, silent = true}
+ vim.keymap.nnoremap {'gD', '<cmd>vsplit | lua vim.lsp.buf.definition()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gi', l .. '.buf.implementation()<cr>', silent = true, buffer = true}
-- telescope fallback (subject to remove)
- kb.bnnoremap(bufnr, 'gI', t .. 'b.lsp_implementations()<cr>', o)
- kb.bnnoremap(bufnr, 'K', l .. '.buf.hover()<cr>', o)
- kb.bnnoremap(bufnr, '<c-p>', l .. '.buf.signature_help()<cr>', o)
- kb.binoremap(bufnr, '<c-p>', l .. '.buf.signature_help()<cr>', o)
- kb.bnnoremap(bufnr, 'gr', l .. '.buf.references()<cr>', o)
+ vim.keymap.nnoremap {'gI', t .. 'b.lsp_implementations()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'K', l .. '.buf.hover()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'<c-p>', l .. '.buf.signature_help()<cr>', silent = true, buffer = true}
+ vim.keymap.inoremap {'<c-p>', l .. '.buf.signature_help()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gr', l .. '.buf.references()<cr>', silent = true, buffer = true}
-- telescope fallback (subject to remove)
- kb.bnnoremap(bufnr, 'gR', t .. '.b.lsp_references()<cr>', o)
- kb.bnnoremap(bufnr, 'ga', t .. '.lsp_code_actions()<cr>', o)
- kb.bnnoremap(bufnr, 'gn', l .. '.buf.rename()<cr>', o)
- kb.bnnoremap(bufnr, 'gN', h .. '.rename()<cr>', o)
- kb.bnnoremap(bufnr, 'gm', t .. '.lsp_document_symbols()<cr>', o)
- kb.binoremap(bufnr, '<down>', 'pumvisible() ? "<c-n>" : "<up>"', oe)
- kb.binoremap(bufnr, '<up>', 'pumvisible() ? "<c-p>" : "<down>"', oe)
+ vim.keymap.nnoremap {'gR', t .. '.b.lsp_references()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'ga', t .. '.lsp_code_actions()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gn', l .. '.buf.rename()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gN', h .. '.rename()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gm', t .. '.lsp_document_symbols()<cr>', silent = true, buffer = true}
+ vim.keymap.inoremap {'<down>', 'pumvisible() ? "<c-n>" : "<up>"', silent = true, buffer = true, expr = true}
+ vim.keymap.inoremap {'<up>', 'pumvisible() ? "<c-p>" : "<down>"', silent = true, buffer = true, expr = true}
-- formatting
- kb.bnnoremap(bufnr, 'Q', l .. '.buf.formatting()<cr>', o)
- kb.bvnoremap(bufnr, 'Q', l .. '.buf.formatting()<cr>', o)
+ vim.keymap.nnoremap {'Q', l .. '.buf.formatting()<cr>', silent = true, buffer = true}
+ vim.keymap.vnoremap {'Q', l .. '.buf.formatting()<cr>', silent = true, buffer = true}
-- workspace
- kb.bnnoremap(bufnr, 'gww', t .. '.b.lsp_workspace_symbols()<cr>', o)
- kb.bnnoremap(bufnr, 'gwa', l .. '.buf.add_workspace_folder()<cr>', o)
- kb.bnnoremap(bufnr, 'gwr', l .. '.buf.remove_workspace_folder()<cr>', o)
- kb.bnnoremap(bufnr, 'gwl', '<cmd>lua dump(vim.lsp.buf.list_workspace_folders())<cr>', o)
+ vim.keymap.nnoremap {'gww', t .. '.b.lsp_workspace_symbols()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gwa', l .. '.buf.add_workspace_folder()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gwr', l .. '.buf.remove_workspace_folder()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gwl', '<cmd>lua dump(vim.lsp.buf.list_workspace_folders())<cr>', silent = true, buffer = true}
-- diagnostic
- kb.bnnoremap(bufnr, 'gs', l .. '.diagnostic.show_line_diagnostics()<cr>', o)
- kb.bnnoremap(bufnr, 'gll', '<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>', o)
- kb.bnnoremap(bufnr, 'gld', t .. '.b.lsp_document_diagnostics()<cr>', o)
- kb.bnnoremap(bufnr, 'glw', t .. '.b.lsp_workspace_diagnostics()<cr>', o)
- kb.bnnoremap(bufnr, {'>d', '>('}, l .. '.diagnostic.goto_next()<cr>', o)
- kb.bnnoremap(bufnr, {'<d', '<('}, l .. '.diagnostic.goto_prev()<cr>', o)
+ vim.keymap.nnoremap {'gs', l .. '.diagnostic.show_line_diagnostics()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gll', '<cmd>lua vim.lsp.diagnostic.set_loclist()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'gld', t .. '.b.lsp_document_diagnostics()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'glw', t .. '.b.lsp_workspace_diagnostics()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'>d', l .. '.diagnostic.goto_next()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'>(', l .. '.diagnostic.goto_next()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'<d', l .. '.diagnostic.goto_prev()<cr>', silent = true, buffer = true}
+ vim.keymap.nnoremap {'<(', l .. '.diagnostic.goto_prev()<cr>', silent = true, buffer = true}
end
local custom_attach = function(client, bufnr)
diff --git a/lua/tms/p/notify/my_stage.lua b/lua/tms/p/notify/my_stage.lua
@@ -0,0 +1,30 @@
+local stages_util = require('notify.stages.util')
+
+return {
+ function(state)
+ local next_height = state.message.height + 2
+ local next_row = stages_util.available_row(state.open_windows, next_height)
+ if not next_row then return nil end
+ return {
+ relative = 'editor',
+ anchor = 'NE',
+ width = state.message.width,
+ height = state.message.height,
+ col = vim.opt.columns:get(),
+ row = next_row,
+ border = 'rounded',
+ style = 'minimal',
+ opacity = 0,
+ focusable = false,
+ }
+ end,
+ function() return {opacity = {100}, col = {vim.opt.columns:get()}} end,
+ function() return {col = {vim.opt.columns:get()}, time = true} end,
+ function()
+ return {
+ width = {1, frequency = 2.5, damping = 0.9, complete = function(cur_width) return cur_width < 3 end},
+ opacity = {0, frequency = 2, complete = function(cur_opacity) return cur_opacity <= 4 end},
+ col = {vim.opt.columns:get()},
+ }
+ end,
+}
diff --git a/lua/tms/plugins.lua b/lua/tms/plugins.lua
@@ -2,7 +2,7 @@ local packer = nil
local function init()
if packer == nil then
packer = require('packer')
- packer.init()
+ packer.init()
end
local use = packer.use
@@ -33,24 +33,21 @@ local function init()
config = function()
vim.g.undotree_WindowLayout = 2
vim.g.undotree_SplitWidth = 50
- local kb = require('tms.c.keybind')
- kb.nnoremap('<F5>', '<cmd>UndotreeToggle<cr>')
+ vim.keymap.nnoremap {'<F5>', '<cmd>UndotreeToggle<cr>'}
end,
}
use { -- animate height/width of window
'camspiers/animate.vim',
config = function()
vim.cmd('let g:animate#duration = 100.0')
- local silent = {silent = true}
- local kb = require('tms.c.keybind')
- kb.nmap('<c-up>', ':call animate#window_delta_height(10)<cr>', silent)
- kb.nmap('<c-down>', ':call animate#window_delta_height(-10)<cr>', silent)
- kb.nmap('<c-left>', ':call animate#window_delta_width(-10)<cr>', silent)
- kb.nmap('<c-right>', ':call animate#window_delta_width(10)<cr>', silent)
- kb.nmap('<s-up>', ':call animate#window_delta_height(1)<cr>', silent)
- kb.nmap('<s-down>', ':call animate#window_delta_height(-1)<cr>', silent)
- kb.nmap('<s-left>', ':call animate#window_delta_width(-1)<cr>', silent)
- kb.nmap('<s-right>', ':call animate#window_delta_width(1)<cr>', silent)
+ vim.keymap.nmap {'<c-up>', ':call animate#window_delta_height(10)<cr>', ['silent'] = true}
+ vim.keymap.nmap {'<c-down>', ':call animate#window_delta_height(-10)<cr>', ['silent'] = true}
+ vim.keymap.nmap {'<c-left>', ':call animate#window_delta_width(-10)<cr>', ['silent'] = true}
+ vim.keymap.nmap {'<c-right>', ':call animate#window_delta_width(10)<cr>', ['silent'] = true}
+ vim.keymap.nmap {'<s-up>', ':call animate#window_delta_height(1)<cr>', ['silent'] = true}
+ vim.keymap.nmap {'<s-down>', ':call animate#window_delta_height(-1)<cr>', ['silent'] = true}
+ vim.keymap.nmap {'<s-left>', ':call animate#window_delta_width(-1)<cr>', ['silent'] = true}
+ vim.keymap.nmap {'<s-right>', ':call animate#window_delta_width(1)<cr>', ['silent'] = true}
end,
}
use { -- colorize rgb format
@@ -68,16 +65,15 @@ local function init()
})
end,
}
- use {
+ use { -- beacon last cursor pos
'danilamihailov/beacon.nvim',
config = function()
vim.g.beacon_ignore_filetypes = {'vifm'}
- local kb = require('tms.c.keybind')
- kb.nmap('*', '*:Beacon<cr>')
- kb.nmap('#', '#:Beacon<cr>')
+ vim.keymap.nmap {'*', '*:Beacon<cr>'}
+ vim.keymap.nmap {'#', '#:Beacon<cr>'}
end,
- } -- beacon last cursor pos
- use {
+ }
+ use { -- highlight parens
'Yggdroot/hiPairs',
config = function()
vim.g.loaded_matchparen = 1
@@ -97,7 +93,7 @@ local function init()
-- ['gui'] = 'bold',
-- }
end,
- } -- highlight parens
+ }
use 'chaoren/vim-wordmotion' -- word counts with _,.,-,...
use {
disable = true,
@@ -105,8 +101,22 @@ local function init()
requires = {'kyazdani42/nvim-web-devicons', opt = true},
config = function() require('tms.p.status').setup() end,
}
- use {disable = true, 'joeytwiddle/sexy_scroller.vim'} -- smooth scrolling
use {
+ 'jandamm/cryoline.nvim',
+ config = function()
+ require('cryoline').config {
+ ft = {fugitive = '%{FugitiveStatusline()}'},
+ line = function()
+ local git_head = vim.fn.FugitiveHead()
+ local branch = ''
+ if #git_head ~= 0 then branch = '[' .. git_head .. ']' end
+ local line = '%f %h%m%r' .. branch .. '%=%-14.(%l,%c%V%)'
+ return line
+ end,
+ }
+ end,
+ }
+ use { -- smooth scrolling
'~/.local/lib/neoscroll.nvim',
config = function()
require('neoscroll').setup({mappings = {'<C-u>', '<C-d>', '<C-b>', '<C-f>', 'zt', 'zz', 'zb'}})
@@ -121,50 +131,44 @@ local function init()
t['zb'] = {'zb', {'100'}}
require('neoscroll.config').set_mappings(t)
end,
- } -- smooth scrolling
- -- use {
- -- disable = true,
- -- 'karb94/neoscroll.nvim',
- -- config = function() require('neoscroll').setup({}) end,
- -- }
+ }
use 'romgrk/equal.operator' -- equal text object `lefthand = righthand`
- use {
+ use { -- parameter switch
'AndrewRadev/sideways.vim',
config = function()
- local kb = require('tms.c.keybind')
- kb.nnoremap('<c-h>', ':SidewaysLeft<cr>')
- kb.nnoremap('<c-l>', ':SidewaysRight<cr>')
- kb.omap({'aa', 'a.'}, '<Plug>SidewaysArgumentTextobjA')
- kb.xmap({'aa', 'a.'}, '<Plug>SidewaysArgumentTextobjA')
- kb.omap('ia', '<Plug>SidewaysArgumentTextobjI')
- kb.xmap('ia', '<Plug>SidewaysArgumentTextobjI')
- kb.nmap('<leader>ah', '<Plug>SidewaysArgumentInsertBefore')
- kb.nmap('<leader>al', '<Plug>SidewaysArgumentAppendAfter')
- kb.nmap('<leader>aH', '<Plug>SidewaysArgumentInsertFirt')
- kb.nmap('<leader>aL', '<Plug>SidewaysArgumentAppendLast')
+ vim.keymap.nnoremap {'<c-h>', ':SidewaysLeft<cr>'}
+ vim.keymap.nnoremap {'<c-l>', ':SidewaysRight<cr>'}
+ vim.keymap.omap {'aa', '<Plug>SidewaysArgumentTextobjA'}
+ vim.keymap.omap {'a.', '<Plug>SidewaysArgumentTextobjA'}
+ vim.keymap.xmap {'aa', '<Plug>SidewaysArgumentTextobjA'}
+ vim.keymap.xmap {'a.', '<Plug>SidewaysArgumentTextobjA'}
+ vim.keymap.omap {'ia', '<Plug>SidewaysArgumentTextobjI'}
+ vim.keymap.xmap {'ia', '<Plug>SidewaysArgumentTextobjI'}
+ vim.keymap.nmap {'<leader>ah', '<Plug>SidewaysArgumentInsertBefore'}
+ vim.keymap.nmap {'<leader>al', '<Plug>SidewaysArgumentAppendAfter'}
+ vim.keymap.nmap {'<leader>aH', '<Plug>SidewaysArgumentInsertFirt'}
+ vim.keymap.nmap {'<leader>aL', '<Plug>SidewaysArgumentAppendLast'}
end,
- } -- parameter switch
- use {
+ }
+ use { -- aligning
'godlygeek/tabular',
config = function()
- local kb = require('tms.c.keybind')
- kb.nmap('<leader>a=', '<cmd>Tabularize /=<cr>')
- kb.vmap('<leader>a=', '<cmd>Tabularize /=<cr>')
- kb.nmap('<leader>a:', '<cmd>Tabularize /:\\zs<cr>')
- kb.vmap('<leader>a:', '<cmd>Tabularize /:\\zs<cr>')
- kb.nmap('<leader>a,', '<cmd>Tabularize /,<cr>')
- kb.vmap('<leader>a,', '<cmd>Tabularize /,<cr>')
+ vim.keymap.nmap {'<leader>a=', '<cmd>Tabularize /=<cr>'}
+ vim.keymap.vmap {'<leader>a=', '<cmd>Tabularize /=<cr>'}
+ vim.keymap.nmap {'<leader>a:', '<cmd>Tabularize /:\\zs<cr>'}
+ vim.keymap.vmap {'<leader>a:', '<cmd>Tabularize /:\\zs<cr>'}
+ vim.keymap.nmap {'<leader>a,', '<cmd>Tabularize /,<cr>'}
+ vim.keymap.vmap {'<leader>a,', '<cmd>Tabularize /,<cr>'}
end,
- } -- aligning
- use {
+ }
+ use { -- replace
'windwp/nvim-spectre',
config = function()
require('tms.p.spectre').setup()
- local kb = require('tms.c.keybind')
- kb.nnoremap('<leader>S', '<cmd>lua require("spectre").open()<cr>')
- kb.vnoremap('<leader>s', '<cmd>lua require("spectre").open_visual()<cr>')
+ vim.keymap.nnoremap {'<leader>S', '<cmd>lua require("spectre").open()<cr>'}
+ vim.keymap.vnoremap {'<leader>s', '<cmd>lua require("spectre").open_visual()<cr>'}
end,
- } -- replace
+ }
use {'tjdevries/astronauta.nvim'}
use {'luukvbaal/stabilize.nvim'}
@@ -177,8 +181,7 @@ local function init()
'folke/zen-mode.nvim',
config = function()
require('zen-mode').setup {}
- local kb = require('tms.c.keybind')
- kb.nnoremap('<leader>z', '<cmd>ZenMode<cr>')
+ vim.keymap.nnoremap {'<leader>z', '<cmd>ZenMode<cr>'}
end,
}
@@ -191,47 +194,43 @@ local function init()
requires = {'nvim-lua/plenary.nvim'},
config = function()
require('tms.p.gitsigns').setup()
- local kb = require('tms.c.keybind')
- kb.nmap({'>c', '>['}, '<cmd>lua require("gitsigns").next_hunk()<cr>')
- kb.nmap({'<c', '<['}, '<cmd>lua require("gitsigns").prev_hunk()<cr>')
- kb.nmap('<leader>hs', '<cmd>lua require("gitsigns").stage_hunk()<cr>')
- kb.nmap('<leader>hu', '<cmd>lua require("gitsigns").undo_stage_hunk()<cr>')
- kb.nmap('<leader>hr', '<cmd>lua require("gitsigns").reset_hunk()<cr>')
- kb.nmap('<leader>hR', '<cmd>lua require("gitsigns").reset_buffer()<cr>')
- kb.nmap('<leader>hp', '<cmd>lua require("gitsigns").preview_hunk()<cr>')
- kb.nmap('<leader>hb', '<cmd>lua require("gitsigns").toggle_current_line_blame()<cr>')
- kb.nmap('<leader>hl', '<cmd>lua require("gitsigns").toggle_linehl()<cr>')
- kb.nmap('<leader>hn', '<cmd>lua require("gitsigns").toggle_numhl()<cr>')
- kb.omap('ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>')
- kb.xmap('ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>')
+ vim.keymap.nmap {'>c', '<cmd>lua require("gitsigns").next_hunk()<cr>'}
+ vim.keymap.nmap {'>[', '<cmd>lua require("gitsigns").next_hunk()<cr>'}
+ vim.keymap.nmap {'<c', '<cmd>lua require("gitsigns").prev_hunk()<cr>'}
+ vim.keymap.nmap {'<[', '<cmd>lua require("gitsigns").prev_hunk()<cr>'}
+ vim.keymap.nmap {'<leader>hs', '<cmd>lua require("gitsigns").stage_hunk()<cr>'}
+ vim.keymap.nmap {'<leader>hu', '<cmd>lua require("gitsigns").undo_stage_hunk()<cr>'}
+ vim.keymap.nmap {'<leader>hr', '<cmd>lua require("gitsigns").reset_hunk()<cr>'}
+ vim.keymap.nmap {'<leader>hR', '<cmd>lua require("gitsigns").reset_buffer()<cr>'}
+ vim.keymap.nmap {'<leader>hp', '<cmd>lua require("gitsigns").preview_hunk()<cr>'}
+ vim.keymap.nmap {'<leader>hb', '<cmd>lua require("gitsigns").toggle_current_line_blame()<cr>'}
+ vim.keymap.nmap {'<leader>hl', '<cmd>lua require("gitsigns").toggle_linehl()<cr>'}
+ vim.keymap.nmap {'<leader>hn', '<cmd>lua require("gitsigns").toggle_numhl()<cr>'}
+ vim.keymap.omap {'ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>'}
+ vim.keymap.xmap {'ig', ':<C-U>lua require("gitsigns").select_hunk()<cr>'}
end,
}
use 'sindrets/diffview.nvim' -- view diffs for multiple files
use { -- git integration
'tpope/vim-fugitive',
config = function()
- local kb = require('tms.c.keybind')
- kb.nnoremap('<leader>gg', '<cmd>G<cr>')
- kb.nnoremap('<leader>gc', '<cmd>G commit<cr>')
- kb.nnoremap('<leader>gb', '<cmd>Git blame<cr>')
+ vim.keymap.nnoremap {'<leader>gg', '<cmd>G<cr>'}
+ vim.keymap.nnoremap {'<leader>gc', '<cmd>G commit<cr>'}
+ vim.keymap.nnoremap {'<leader>gb', '<cmd>Git blame<cr>'}
end,
}
use { -- git info for current line
'rhysd/git-messenger.vim',
- config = function()
- local kb = require('tms.c.keybind')
- kb.nnoremap('<leader>gm', '<plug>(git-messenger)')
- end,
+ config = function() vim.keymap.nnoremap {'<leader>gm', '<plug>(git-messenger)'} end,
}
use {
'ThePrimeagen/git-worktree.nvim',
after = {'telescope.nvim'},
config = function()
require('git-worktree').setup()
- local kb = require('tms.c.keybind')
require('telescope').load_extension('git_worktree')
- kb.nnoremap('<space>wo', require('telescope').extensions.git_worktree.git_worktrees)
- kb.nnoremap('<space>wi', require('telescope').extensions.git_worktree.create_git_worktree)
+ vim.keymap.nnoremap {'<space>wo', require('telescope').extensions.git_worktree.git_worktrees}
+ vim.keymap.nnoremap {'<space>wi', require('telescope').extensions.git_worktree.create_git_worktree}
end,
}
@@ -291,6 +290,7 @@ local function init()
-- snippets
use {'norcalli/snippets.nvim', config = function() require('tms.p.snippets').setup() end}
+ use {'L3MON4D3/LuaSnip'}
-- completion
use {
@@ -304,13 +304,21 @@ local function init()
'hrsh7th/cmp-calc',
'ray-x/cmp-treesitter',
'uga-rosa/cmp-dictionary',
+ 'L3MON4D3/LuaSnip',
},
config = function()
- -- require('tms.p.compe').setup()
+ local luasnip = require('luasnip')
local cmp = require('cmp')
+
+ local has_words_before = function()
+ local line, col = unpack(vim.api.nvim_win_get_cursor(0))
+ return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match('%s') == nil
+ end
+
cmp.setup({
completion = {autocomplete = false},
documentation = {border = 'single'},
+ snippet = function(args) require('luasnip').lsp_expand(args.body) end,
mapping = {
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
@@ -318,11 +326,33 @@ local function init()
['<Up>'] = cmp.mapping.select_prev_item({behavior = cmp.SelectBehavior.Insert}),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.close(),
- ['<CR>'] = cmp.mapping.confirm({select = true, behavior = cmp.ConfirmBehavior.Replace}),
+ ['<CR>'] = cmp.mapping.confirm({select = true}),
+ ['<Tab>'] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_next_item()
+ elseif luasnip.expand_or_jumpable() then
+ luasnip.expand_or_jump()
+ elseif has_words_before() then
+ cmp.complete()
+ else
+ fallback()
+ end
+ end, {'i', 's'}),
+
+ ['<S-Tab>'] = cmp.mapping(function(fallback)
+ if cmp.visible() then
+ cmp.select_prev_item()
+ elseif luasnip.jumpable(-1) then
+ luasnip.jump(-1)
+ else
+ fallback()
+ end
+ end, {'i', 's'}),
},
sources = {
{name = 'nvim_lsp'},
{name = 'nvim_lua'},
+ {name = 'luasnip'},
{name = 'path'},
{name = 'buffer'},
{name = 'spell'},
@@ -331,18 +361,18 @@ local function init()
{name = 'dictionary'},
},
})
- -- local kb = require('tms.c.keybind')
- -- kb.inoremap('<c-space>', 'compe#complete()', {silent = true, expr = true})
- -- kb.imap('<Tab>', 'v:lua.tab_complete()', {expr = true})
- -- kb.smap('<Tab>', 'v:lua.tab_complete()', {expr = true})
- -- kb.imap('<S-Tab>', 'v:lua.s_tab_complete()', {expr = true})
- -- kb.smap('<S-Tab>', 'v:lua.s_tab_complete()', {expr = true})
end,
}
-- ui
use 'MunifTanjim/nui.nvim'
- use 'rcarriga/nvim-notify'
+ use {
+ 'rcarriga/nvim-notify',
+ config = function()
+ vim.notify = require('notify')
+ require('notify').setup({stages = require('tms.p.notify.my_stage')})
+ end,
+ }
-- refactor
use {
@@ -413,8 +443,7 @@ local function init()
require('tms.p.treesitter').setup()
-- hack
vim.cmd [[command! TSHRefresh execute 'write|edit|TSBufEnable highlight']]
- local kb = require('tms.c.keybind')
- kb.nnoremap('<leader>su', '<cmd>TSHRefresh<cr>')
+ vim.keymap.nnoremap {'<leader>su', '<cmd>TSHRefresh<cr>'}
end,
}
use 'nvim-treesitter/nvim-treesitter-textobjects'
@@ -428,30 +457,29 @@ local function init()
config = function()
local telescope = require('tms.p.telescope')
telescope.setup()
- local kb = require('tms.c.keybind')
- kb.nnoremap('<space>h', telescope.b.help_tags)
- kb.nnoremap('<space>d', telescope.find_files)
- kb.nnoremap('<space>D', telescope.b.find_files)
- kb.nnoremap('<space>g', telescope.b.git_files)
- kb.nnoremap('<space>b', telescope.buffers)
- kb.nnoremap('<space>l', telescope.lines)
- kb.nnoremap('<space>r', telescope.b.live_grep)
- kb.nnoremap('<space>e', telescope.b.grep_string)
- kb.nnoremap('<space>c', telescope.b.git_status)
- kb.nnoremap('<space>q', telescope.b.quickfix)
- kb.nnoremap('<space>k', telescope.keymaps)
- kb.nnoremap('<space>m', telescope.b.man_pages)
- kb.nnoremap('<space>p', telescope.reloader)
- kb.nnoremap('<space>S', telescope.spell_suggest)
+ vim.keymap.nnoremap {'<space>h', telescope.b.help_tags}
+ vim.keymap.nnoremap {'<space>d', telescope.find_files}
+ vim.keymap.nnoremap {'<space>D', telescope.b.find_files}
+ vim.keymap.nnoremap {'<space>g', telescope.b.git_files}
+ vim.keymap.nnoremap {'<space>b', telescope.buffers}
+ vim.keymap.nnoremap {'<space>l', telescope.lines}
+ vim.keymap.nnoremap {'<space>r', telescope.b.live_grep}
+ vim.keymap.nnoremap {'<space>e', telescope.b.grep_string}
+ vim.keymap.nnoremap {'<space>c', telescope.b.git_status}
+ vim.keymap.nnoremap {'<space>q', telescope.b.quickfix}
+ vim.keymap.nnoremap {'<space>k', telescope.keymaps}
+ vim.keymap.nnoremap {'<space>m', telescope.b.man_pages}
+ vim.keymap.nnoremap {'<space>p', telescope.reloader}
+ vim.keymap.nnoremap {'<space>S', telescope.spell_suggest}
-- extensions
- kb.nnoremap('<space>s', telescope.snippets)
- kb.nnoremap('<space>M', telescope.media_files)
+ vim.keymap.nnoremap {'<space>s', telescope.snippets}
+ vim.keymap.nnoremap {'<space>M', telescope.media_files}
-- custom
- kb.nnoremap('<space>n', telescope.edit_neovim)
+ vim.keymap.nnoremap {'<space>n', telescope.edit_neovim}
-- maybe - almost unsuedtelescope
- kb.nnoremap('<space>o', telescope.b.oldfiles)
- kb.nnoremap('<space>t', telescope.b.treesitter)
- kb.nnoremap('<space>P', telescope.plugins)
+ vim.keymap.nnoremap {'<space>o', telescope.b.oldfiles}
+ vim.keymap.nnoremap {'<space>t', telescope.b.treesitter}
+ vim.keymap.nnoremap {'<space>P', telescope.plugins}
end,
}
use {'nvim-telescope/telescope-packer.nvim', after = {'telescope.nvim'}}
@@ -470,9 +498,8 @@ local function init()
after = {'telescope.nvim'},
config = function()
require('telescope').load_extension('snippets')
- local kb = require('tms.c.keybind')
- kb.inoremap('<c-j>', '<cmd>lua require"snippets".expand_or_advance()<cr>')
- kb.inoremap('<c-k>', '<cmd>lua require"snippets".advance_snippet(-1)<cr>')
+ vim.keymap.inoremap {'<c-j>', '<cmd>lua require"snippets".expand_or_advance()<cr>'}
+ vim.keymap.inoremap {'<c-k>', '<cmd>lua require"snippets".advance_snippet(-1)<cr>'}
end,
}
use {
@@ -490,9 +517,8 @@ local function init()
use {
'GenesisTMS/trans.nvim',
config = function()
- local kb = require('tms.c.keybind')
- kb.xmap('mtt', '<cmd>lua require("trans").translate()<cr>')
- kb.xmap('mtc', '<cmd>lua require("trans").translate("cs")<cr>')
+ vim.keymap.xmap {'mtt', '<cmd>lua require("trans").translate()<cr>'}
+ vim.keymap.xmap {'mtc', '<cmd>lua require("trans").translate("cs")<cr>'}
end,
}
end
diff --git a/lua/tms/u/git.lua b/lua/tms/u/git.lua
@@ -1,8 +1,7 @@
local M = {}
M.is_git = function(path)
- local id = vim.fn.jobstart('git -C "' .. path .. '" rev-parse',
- {on_exit = function(_, code, type) end})
+ local id = vim.fn.jobstart('git -C "' .. path .. '" rev-parse', {on_exit = function(_, code, type) end})
local status = vim.fn.jobwait({id})[1]
if status == 0 then
return true
diff --git a/lua/tms/ws/file_pairs.lua b/lua/tms/ws/file_pairs.lua
@@ -5,10 +5,9 @@ local ft_letter = {html = 't', scss = 's', dart = 'd', css = 'c'}
local set_mark = function(letter, path, buffer)
path = path or vim.fn.expand('%')
if buffer == nil then buffer = true end
- local nnoremap = require('astronauta.keymap').nnoremap
- nnoremap {'<leader>m' .. letter, '<cmd>edit ' .. path .. '<cr>', ['buffer'] = buffer}
- nnoremap {'<leader>mv' .. letter, '<cmd>vsplit ' .. path .. '<cr>', ['buffer'] = buffer}
- nnoremap {'<leader>mx' .. letter, '<cmd>split ' .. path .. '<cr>', ['buffer'] = buffer}
+ vim.keymap.nnoremap {'<leader>m' .. letter, '<cmd>edit ' .. path .. '<cr>', ['buffer'] = buffer}
+ vim.keymap.nnoremap {'<leader>mv' .. letter, '<cmd>vsplit ' .. path .. '<cr>', ['buffer'] = buffer}
+ vim.keymap.nnoremap {'<leader>mx' .. letter, '<cmd>split ' .. path .. '<cr>', ['buffer'] = buffer}
end
M.config = function()
diff --git a/lua/tms/ws/init.lua b/lua/tms/ws/init.lua
@@ -1,4 +1,3 @@
-local kb = require('tms.c.keybind')
local au = require('tms.c.autocmd')
local M = {}
@@ -6,14 +5,14 @@ local M = {}
local ws = {}
ws.mail = {
filetypes = {'mail'},
- config = function() kb.nnoremap('<leader>pa', [[<cmd>lua require("tms.p.telescope").mail_address()<cr>]]) end,
+ config = function() vim.keymap.nnoremap{'<leader>pa', [[<cmd>lua require("tms.p.telescope").mail_address()<cr>]]} end,
}
ws.file_pairs = {buffer = '*', config = function() require('tms.ws.file_pairs').config() end}
ws.medoro = {
path = '*/medoro/**',
- config = function() kb.nnoremap('<leader>pl', '<cmd>lua require("tms.ws.medoro").lang()<cr>') end,
+ config = function() vim.keymap.nnoremap{'<leader>pl', '<cmd>lua require("tms.ws.medoro").lang()<cr>'} end,
}
M.setup = function()
diff --git a/plugin/marks.lua b/plugin/marks.lua
@@ -1,5 +1,3 @@
-local nnoremap = require('astronauta.keymap').nnoremap
-
-- global markers
for _, l in ipairs({
'a',
@@ -29,7 +27,7 @@ for _, l in ipairs({
'y',
'z',
}) do
- nnoremap {'m' .. l, 'm' .. l:upper()}
- nnoremap {'\'' .. l, '`' .. l:upper()}
- nnoremap {'`' .. l, '\'' .. l:upper()}
+ vim.keymap.nnoremap {'m' .. l, 'm' .. l:upper()}
+ vim.keymap.nnoremap {'\'' .. l, '`' .. l:upper()}
+ vim.keymap.nnoremap {'`' .. l, '\'' .. l:upper()}
end
diff --git a/plugin/quickfix.lua b/plugin/quickfix.lua
@@ -1,5 +1,4 @@
-local nnoremap = require('astronauta.keymap').nnoremap
-nnoremap {'<leader>c', '<cmd>copen<cr>'}
-nnoremap {'<leader>C', '<cmd>cexpr []|cclose<cr>'}
-nnoremap {'<leader>l', '<cmd>lopen<cr>'}
-nnoremap {'<leader>L', '<cmd>lexpr []|lclose<cr>'}
+vim.keymap.nnoremap {'<leader>c', '<cmd>copen<cr>'}
+vim.keymap.nnoremap {'<leader>C', '<cmd>cexpr []|cclose<cr>'}
+vim.keymap.nnoremap {'<leader>l', '<cmd>lopen<cr>'}
+vim.keymap.nnoremap {'<leader>L', '<cmd>lexpr []|lclose<cr>'}
diff --git a/plugin/terminal.lua b/plugin/terminal.lua
@@ -4,7 +4,7 @@ if not ok then
end
local ui = require('tms.u.ui')
-local keymap = require('astronauta.keymap')
+local keymap = vim.keymap
local nnoremap = keymap.nnoremap
local tnoremap = keymap.tnoremap
nnoremap {'<leader>tl', function() terminal.interactive() end}
diff --git a/plugin/unimpaired.lua b/plugin/unimpaired.lua
@@ -1,47 +1,45 @@
-local nmap = require('astronauta.keymap').nmap
-
-- remap ] and [
-nmap {'>q', ']q'}
-nmap {'>!', ']q'}
-nmap {'<!', '[q'}
-nmap {'<q', '[q'}
-nmap {'>Q', ']Q'}
-nmap {'<Q', '[Q'}
-nmap {'>a', ']a'}
-nmap {'<a', '[a'}
-nmap {'>A', ']A'}
-nmap {'<A', '[A'}
-nmap {'>b', ']b'}
-nmap {'<b', '[b'}
-nmap {'>B', ']B'}
-nmap {'<B', '[B'}
-nmap {'>l', ']l'}
-nmap {'>=', ']l'}
-nmap {'<l', '[l'}
-nmap {'<=', '[l'}
-nmap {'>L', ']L'}
-nmap {'<L', '[L'}
-nmap {'>t', ']t'}
-nmap {'<t', '[t'}
-nmap {'>T', ']T'}
-nmap {'<T', '[T'}
-nmap {'>s', ']s'}
-nmap {'<s', '[s'}
-nmap {'>S', ']S'}
-nmap {'<S', '[S'}
-nmap {'>f', ']f'}
-nmap {'<f', '[f'}
-nmap {'>e', ']e'}
-nmap {'<e', '[e'}
-nmap {'>x', ']x'}
-nmap {'>x', ']x'}
-nmap {'<x', '[x'}
-nmap {'<x', '[x'}
-nmap {'>u', ']u'}
-nmap {'>u', ']u'}
-nmap {'<u', '[u'}
-nmap {'<u', '[u'}
-nmap {'>y', ']y'}
-nmap {'>y', ']y'}
-nmap {'<y', '[y'}
-nmap {'<y', '[y'}
+vim.keymap.nmap {'>q', ']q'}
+vim.keymap.nmap {'>!', ']q'}
+vim.keymap.nmap {'<!', '[q'}
+vim.keymap.nmap {'<q', '[q'}
+vim.keymap.nmap {'>Q', ']Q'}
+vim.keymap.nmap {'<Q', '[Q'}
+vim.keymap.nmap {'>a', ']a'}
+vim.keymap.nmap {'<a', '[a'}
+vim.keymap.nmap {'>A', ']A'}
+vim.keymap.nmap {'<A', '[A'}
+vim.keymap.nmap {'>b', ']b'}
+vim.keymap.nmap {'<b', '[b'}
+vim.keymap.nmap {'>B', ']B'}
+vim.keymap.nmap {'<B', '[B'}
+vim.keymap.nmap {'>l', ']l'}
+vim.keymap.nmap {'>=', ']l'}
+vim.keymap.nmap {'<l', '[l'}
+vim.keymap.nmap {'<=', '[l'}
+vim.keymap.nmap {'>L', ']L'}
+vim.keymap.nmap {'<L', '[L'}
+vim.keymap.nmap {'>t', ']t'}
+vim.keymap.nmap {'<t', '[t'}
+vim.keymap.nmap {'>T', ']T'}
+vim.keymap.nmap {'<T', '[T'}
+vim.keymap.nmap {'>s', ']s'}
+vim.keymap.nmap {'<s', '[s'}
+vim.keymap.nmap {'>S', ']S'}
+vim.keymap.nmap {'<S', '[S'}
+vim.keymap.nmap {'>f', ']f'}
+vim.keymap.nmap {'<f', '[f'}
+vim.keymap.nmap {'>e', ']e'}
+vim.keymap.nmap {'<e', '[e'}
+vim.keymap.nmap {'>x', ']x'}
+vim.keymap.nmap {'>x', ']x'}
+vim.keymap.nmap {'<x', '[x'}
+vim.keymap.nmap {'<x', '[x'}
+vim.keymap.nmap {'>u', ']u'}
+vim.keymap.nmap {'>u', ']u'}
+vim.keymap.nmap {'<u', '[u'}
+vim.keymap.nmap {'<u', '[u'}
+vim.keymap.nmap {'>y', ']y'}
+vim.keymap.nmap {'>y', ']y'}
+vim.keymap.nmap {'<y', '[y'}
+vim.keymap.nmap {'<y', '[y'}