将选择作为参数传递给外部命令,而不是在kakoune中进行管道传递

时间:2018-11-04 04:48:15

标签: bash sh tmux kakoune

我正在尝试直接从Kakoune将代码发送到SBCL。我已经决定使用tmux了,SBCL实例在具有给定会话名称的tmux实例中运行。用于传递按键输入的tmux命令如下:

tmux send-keys -t <session-name> "<text to send to tmux>"

但是,在kakoune中,将选择文本传递给外部命令的最方便的现有方法似乎是通过管道传递,而不是作为参数传递。目前,这似乎可行:

nop %sh{tmux send-keys -t sess -l "$kak_selection"}

这种可以满足我的要求,但是它仅发送主要选择。我真的不能使用$ kak_selections,因为这会在选择中添加单引号,而SBCL不会按预期对其进行解析。即使不是,我也希望它的行为更像alt + |,它将选择内容通过管道传递到它们自己的命令实例中。 Kakoune中是否有现成的方法?如果不是这样,编写一个将stdin转换为tmux的带引号参数的sh脚本会很容易吗?

1 个答案:

答案 0 :(得分:1)

我找不到任何内置的方法来执行此操作,但是此问题/答案有所帮助:Piping result of command as an argument

我最终决定在外部运行此命令(以便可以使用Kakoune中的默认管道行为)

xargs -0 tmux send-keys -t sbcl -l "${@}"