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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
------------------------------------
--- LIBRARIES
------------------------------------
require('vis')
require('plugins/vis-cursors')
require('plugins/vis-title')
------------------------------------
--- EVENTS
------------------------------------
vis.events.subscribe(vis.events.INIT, function()
vis.options.ignorecase = true
vis.options.autoindent = true
vis.options.shell = "/bin/sh"
theme = "nord"
vis:command("set theme " .. theme)
end)
vis.events.subscribe(vis.events.WIN_OPEN, function(win) -- luacheck: no unused args
win.options.relativenumbers = true
end)
------------------------------------
--- FUNCTIONS
------------------------------------
function map_cmd(mode, map, command, help)
vis:map(mode, map, function()
vis:command(command)
end, help)
end
function map_cmd_restore(mode, map, command, help)
vis:map(mode, map, function()
if (mode == vis.modes.INSERT) then
vis:feedkeys("<Escape>")
end
vis:feedkeys("m")
vis:command(command)
vis:feedkeys("M")
if (mode == vis.modes.INSERT) then
vis:feedkeys("i")
end
end, help)
end
------------------------------------
--- VARIABLES
------------------------------------
local m = vis.modes
------------------------------------
--- COMMANDS
------------------------------------
vis:command_register("Q", function(argv, force, win, selection, range)
vis:command("qa!")
end, "Quit all")
-------------------------------------
--- MAPPINGS
-------------------------------------
map_cmd_restore(m.NORMAL, " r", "e $vis_filepath", "Reload active file")
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")
vis:map(m.NORMAL, " eh", function()
vis:command("!lowdown $vis_filepath > ${vis_filepath%.md}.html")
vis:info("exported.")
end, "Export markdown to html")
vis:map(m.NORMAL, " nl", function() vis:feedkeys(":<seq -f '%0.0f. ' 1 ") end, "Insert numbered list")
-- select markdown list element: ,x/^(\d+\.|[-*])\s+.+\n(^ .+\n)*/
|