local function map_text_object(key, target) if (vim.fn.maparg(key, "o") == "") then vim.api.nvim_set_keymap("o", key, target, {noremap = true}) elseif (vim.fn.maparg(key, "x") == "") then vim.api.nvim_set_keymap("x", key, target, {noremap = true}) else end return nil end local function map_all(key, target) if (vim.fn.maparg(key, "n") == "") then return vim.api.nvim_set_keymap("n", key, target, {noremap = true}) else return map_text_object(key, target) end end local function setup() map_all("c", "h") map_all("t", "j") map_all("s", "k") map_all("r", "l") map_all("C", "H") map_all("T", "J") map_all("S", "K") map_all("gt", "gj") map_all("gs", "gk") map_all("zs", "zk") map_all("h", "t") map_all("H", "T") map_all("l", "c") map_all("L", "C") map_all("j", "r") map_all("J", "R") map_all("k", "s") map_all("K", "S") map_all("gb", "gT") map_all("g\195\169", "gt") map_all("gB", ":execute ", __fnl_global__silent_21, tabfirst, "") map_all("g\195\137", ":execute ", __fnl_global__silent_21, tablast, " ") map_all("gT", "") map_all("\194\171", "<") map_all("\194\187", ">") map_all("g,", "g;") map_all("g;", "g,") map_all("\195\169", "w") map_all("\195\137", "W") map_text_object("a\195\169", "aw") map_text_object("a\195\137", "aW") map_text_object("i\195\169", "iw") map_text_object("i\195\137", "iW") map_all("w", "") map_all("W", "") map_all("wc", "h") map_all("wt", "j") map_all("ws", "k") map_all("wr", "l") map_all("wC", "H") map_all("wT", "J") map_all("wS", "K") map_all("wR", "L") map_all("wh", "s") map_all("w\195\169", "t") return map_all("w\195\137", "T") end return {setup = setup}