aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/utils.vim9
-rw-r--r--plugin/command.vim2
2 files changed, 11 insertions, 0 deletions
diff --git a/autoload/utils.vim b/autoload/utils.vim
index 5bbc7e8..c573a48 100644
--- a/autoload/utils.vim
+++ b/autoload/utils.vim
@@ -168,3 +168,12 @@ function! utils#GetGitBranch()
return l:res
endif
endfunction
+
+" Redirect command output to a register for later processing.
+" Ref: https://stackoverflow.com/q/2573021/6064933 and https://unix.stackexchange.com/q/8101/221410 .
+function! utils#CaptureCommandOutput(command) abort
+ echomsg "command is" a:command
+ redir @m
+ execute a:command
+ redir END
+endfunction
diff --git a/plugin/command.vim b/plugin/command.vim
new file mode 100644
index 0000000..e39859b
--- /dev/null
+++ b/plugin/command.vim
@@ -0,0 +1,2 @@
+" Capture output from a command to register @m, to paste, press "mp
+command! -nargs=1 -complete=command Redir call utils#CaptureCommandOutput(<q-args>)