diff options
Diffstat (limited to 'data/plugins/exec.lua')
| -rw-r--r-- | data/plugins/exec.lua | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/data/plugins/exec.lua b/data/plugins/exec.lua new file mode 100644 index 00000000..a11ac906 --- /dev/null +++ b/data/plugins/exec.lua @@ -0,0 +1,27 @@ +local core = require "core" +local command = require "core.command" + + +local function exec(cmd) + local fp = io.popen(cmd, "r") + local res = fp:read("*a") + fp:close() + return res:gsub("%\n$", "") +end + + +command.add("core.docview", { + ["exec:insert"] = function() + core.command_view:enter("Insert Result Of Command", function(cmd) + core.active_view.doc:text_input(exec(cmd)) + end) + end, + + ["exec:replace"] = function() + core.command_view:enter("Replace With Result Of Command", function(cmd) + core.active_view.doc:replace(function(str) + return exec(string.format("echo %q | %s", str, cmd)) + end) + end) + end, +}) |
