diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-08-15 18:53:47 +0200 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-08-15 18:53:47 +0200 |
commit | 4073294204effdf65e1182d1769120a5fcd9d348 (patch) | |
tree | a1a961e382a74a032dfe48ace0cb53bd89234a29 /config/essentials/vis/visrc.lua | |
parent | 93bdfbb5d7b16a44cb23e6ee2bffd3eef368f8fc (diff) |
checkpoint
Diffstat (limited to 'config/essentials/vis/visrc.lua')
-rw-r--r-- | config/essentials/vis/visrc.lua | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/config/essentials/vis/visrc.lua b/config/essentials/vis/visrc.lua deleted file mode 100644 index 30e4946..0000000 --- a/config/essentials/vis/visrc.lua +++ /dev/null @@ -1,188 +0,0 @@ ------------------------------------- ---- REQUIRES ------------------------------------- -require("vis") - --- plugins -require("build") --- use Trash directory instead, remove set_dir function -require("backup") -require("cursors") -require("ctags") -require("title") -require("commentary") -require("complete-line") --- set height to 40% -require("fzf-open") -require("vis-ultisnips") --- TODO: doesn't work when using with 'e|b' --- require("yank-highlight") - --- save position before formatting, use vis:redraw -local format = require("format") - --- set height to 40% -local fzfmru = require("fzf-mru") -fzfmru.fzfmru_path = 'grep "^' .. io.popen("pwd"):read("*a"):gsub("\n$", "") .. '" | fzf' - --- todo: --- c-scope --- c-tags --- ... --- vis-goto, favor open-file-under-cursor --- ... --- ultisnips --- ... --- vis-yank-highlight - ------------------------------------- ---- VARIABLES ------------------------------------- -local m = vis.modes - ------------------------------------- ---- FUNCTIONS ------------------------------------- - -local function map_cmd(mode, map, command, help) - vis:map(mode, map, function() - vis:command(command) - end, help) -end - --- Store and pop position with command ran in between -local function wrap_pos_restore(f, ...) - local pos = vis.win.selection.pos - f(...) - vis.win.selection.pos = pos -end - -local function map_keys(mode, map, keys, help) - vis:map(mode, map, function() - vis:feedkeys(keys) - end, help) -end - ------------------------------------- ---- COMMANDS ------------------------------------ - -vis:command_register("make", function() - vis:command("!make; head -n 1") -end, "make") -vis:command_register("Q", function() - vis:command("qa!") -end, "Quit all") -vis:command_register("delws", function() - vis:command(",x/[ \t]+$|^[ \t]+$/d") -end, "Remove trailing whitespace") -vis:command_register("redraw", function() vis:redraw() end, "Redraw UI") - -------------------------------------- ---- MAPPINGS -------------------------------------- - -vis.events.subscribe(vis.events.WIN_OPEN, function(win) -- luacheck: no unused args - map_cmd(m.NORMAL, " pf", "fzf", "Open file with fzf") - map_cmd(m.NORMAL, " pr", "fzfmru", "Open file with fzf") - - vis:map(m.NORMAL, " r", function() - wrap_pos_restore(vis.command, vis, "e $vis_filepath") - end, "Reload active file") - vis:map(m.NORMAL, "=", format.apply, "Format active file") - map_cmd(m.NORMAL, "<M-m>", "make", "Run 'make'") - map_cmd(m.NORMAL, " c", "e ~/.config/vis/visrc.lua", "Edit config file") - map_cmd(m.NORMAL, " q", "q!", "Quit (force)") - map_cmd(m.NORMAL, " s", "!doas vis $vis_filepath", "Edit as superuser") - map_cmd(m.NORMAL, " w", "w", "Write") - map_cmd(m.NORMAL, " x", "!chmod u+x $vis_filepath", "Make active file executable") - map_cmd(m.NORMAL, "!", "!bash", "Run bash") - map_keys(m.NORMAL, " y", '"+y', "Copy to system clipboard") - map_keys(m.VISUAL, " y", '"+y', "Copy to system clipboard") - map_keys(m.NORMAL, " nl", ":<seq -f '%0.0f. ' 1 ", "Insert numbered list") - map_keys(m.NORMAL, "<M-S-Down>", "ddp", "Move line down") - map_keys(m.NORMAL, "<M-S-Up>", "ddkP", "Move line up") -- Doesn't work at end of file -end) - ------------------------------------- ---- EVENTS ------------------------------------- - -vis.events.subscribe(vis.events.INIT, function() - vis.options.ignorecase = true - vis.options.autoindent = true - vis.options.shell = "/bin/sh" - local theme = "nord" - vis:command("set theme " .. theme) -end) - -vis.events.subscribe(vis.events.WIN_OPEN, function(win) -- luacheck: no unused args - -- automatically cd in parent dir of file - vis:command_register("cdp", function() - if win and win.file and win.file.path then - local dir = win.file.path:match(".*/") - vis:info("cd " .. tostring(dir)) - end - end, "Cd to parent dir of file") - - win.options.relativenumbers = true - - if win.syntax then - vis:info(win.syntax) - end - - -- FILETYPE OPTIONS - if win.syntax == "ansi_c" then - map_keys(m.NORMAL, "\\a", "f,a <Escape>hdw<S-Tab>i<Tab><Escape>", "Align table") - end - - if win.syntax == "bash" then - vis:command_register("curl", function() - vis:command("x/ -H/ c/\\\n\t-H/") - end, "Split curl command on multiple lines") - map_keys( - m.NORMAL, - "\\p", - "V:x/^(\\s*)(.+)$/ c/\\1>\\&2 printf '\\2: %s\\\\n' \"$\\2\"/<Enter><Escape>", - "Print variable" - ) - map_keys(m.NORMAL, "\\v", 'V:x/^(\\s*)(.+)$/ c/\\1"$(\\2)"/<Enter><Escape>', "Surround in variable") - map_keys(m.NORMAL, "\\|", "V:x/\\| / c/|\n\t/<Enter><Escape>", "Wrap one-line multi pipe command") - map_keys( - m.NORMAL, - "\\e", - 'V:x/^(\\s*)(.+)$/ c/\\1[ "$\\2" ] || exit 1/<Enter><Escape>', - "Condition exit if empty" - ) - map_cmd(m.NORMAL, "\\sc", "-/\\<case\\>/,/\\<esac\\>/", "Expand to case") - map_cmd(m.NORMAL, "\\sw", "-/\\<while/,/\\<done\\>/", "Expand to while") - map_cmd(m.NORMAL, "\\sf", "-/\\<for\\>/,/\\<done\\>/", "Expand to for") - map_cmd(m.NORMAL, "\\si", "-/\\<if\\>/,/\\<fi\\>/", "Expand to if") - end - - if win.syntax == "go" then - require("vis-go") - end - - if win.syntax == "lua" then - require("vis-lua") - end - - if win.syntax == "markdown" then - win.options.tabwidth = 2 - win.options.expandtab = true - vis:map(m.NORMAL, "\\h", function() - vis:command("!lowdown $vis_filepath > ${vis_filepath%.md}.html") - vis:info("exported.") - end, "Export markdown to html") - map_cmd(m.NORMAL, "\\sl", "-+x/(\\d+|[-*])\\s+.+\n/", "Expand to list item") - map_cmd(m.NORMAL, "\\sh", "-/^#+/,/^#+/-", "Expand to header") - -- select header block by name - -- ,x/^# Planning\n([^#]|\n)+ - end - - if win.syntax == "yaml" then - win.options.tabwidth = 2 - win.options.expandtab = true - end -end) |