dotfiles/.config/kak/autoload/sh.kak

28 lines
810 B
Text

define-command -docstring %{
shell-command [switches] <args>: Run the given shell command. Display
its output in an info modal.
Switches:
-d echo stdout to *debug* buffer as well
} -params 1.. shell-command %{
evaluate-commands %sh{
if [ "$1" = "-d" ]; then
debug="true"
shift
fi
stdout="$(eval "$@")"
printf 'info -title sh "%s"\n' "$stdout"
if [ "$debug" = "true" ]; then
printf 'echo -debug -- "%s"\n' "$stdout"
fi
}
}
define-command -params 1.. shell-async-command %{
nop %sh{
{
stdout="$(eval "$@")"
printf 'info -title sh "%s"\n' "$stdout" | kak -p "$kak_session"
} >/dev/null 2>&1 </dev/null &
}
}
alias global sh shell-command
alias global ! shell-command