diff options
Diffstat (limited to 'lua/plugins/digraph.lua')
| -rw-r--r-- | lua/plugins/digraph.lua | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/lua/plugins/digraph.lua b/lua/plugins/digraph.lua new file mode 100644 index 0000000..b783612 --- /dev/null +++ b/lua/plugins/digraph.lua @@ -0,0 +1,23 @@ +-- insert digraphs using vis-digraph(1) + +vis:map(vis.modes.INSERT, "<C-k>", function(keys) + if #keys < 2 then + return -1 -- need more input + end + local file = io.popen(string.format("vis-digraph '%s' 2>&1", keys:gsub("'", "'\\''"))) + local output = file:read('*all') + local success, msg, status = file:close() + if success then + if vis.mode == vis.modes.INSERT then + vis:insert(output) + elseif vis.mode == vis.modes.REPLACE then + vis:replace(output) + end + elseif msg == 'exit' then + if status == 2 then + return -1 -- prefix need more input + end + vis:info(output) + end + return #keys +end, "Insert digraph") |
