首页 > 解决方案 > 将选择作为参数传递给外部命令,而不是在 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 有现有的方法来做到这一点吗?如果不是,那么编写一个将标准输入转换为 tmux 的引用参数的 sh 脚本是否容易?

标签: bashshtmuxkakoune

解决方案


我找不到任何内置的方法来做到这一点,但这个问题/答案有帮助:管道结果的命令作为参数

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

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


推荐阅读