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)