vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
map-basic.lua
(1171B)
1
2 vis:map(vis.modes.NORMAL, "K", function()
3 vis:feedkeys("iNormal Mode<Escape>")
4 end)
5
6 vis:map(vis.modes.INSERT, "K", function()
7 vis:feedkeys("Insert Mode<Escape>")
8 end)
9
10 vis:map(vis.modes.VISUAL, "K", function()
11 vis:feedkeys("<Escape>iVisual Mode<Escape>")
12 end)
13
14 vis:map(vis.modes.VISUAL_LINE, "K", function()
15 vis:feedkeys("<Escape>iVisual Line Mode<Escape>")
16 end)
17
18 vis:map(vis.modes.REPLACE, "K", function()
19 vis:feedkeys("Replace Mode<Escape>")
20 end)
21
22 local win = vis.win
23 local file = win.file
24
25 describe("map", function()
26
27 before_each(function()
28 win.selection.pos = 0
29 end)
30
31 after_each(function()
32 file:delete(0, file.size)
33 end)
34
35 local same = function(expected)
36 local data = file:content(0, file.size)
37 assert.are.same(expected, data)
38 end
39
40 it("normal mode", function()
41 vis:feedkeys("K")
42 same("Normal Mode")
43 end)
44
45 it("insert mode", function()
46 vis:feedkeys("iK")
47 same("Insert Mode")
48 end)
49
50 it("visual mode", function()
51 vis:feedkeys("vK")
52 same("Visual Mode")
53 end)
54
55 it("visual line mode", function()
56 vis:feedkeys("VK")
57 same("Visual Line Mode")
58 end)
59
60 it("replace mode", function()
61 vis:feedkeys("RK")
62 same("Replace Mode")
63 end)
64 end)