Передача выбора внешним командам в качестве аргументов, а не передача в kakoune - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь отправить код в SBCL напрямую из Какуне. Я решил использовать tmux для этого, экземпляр SBCL запускается в экземпляре tmux с заданным именем сеанса. Команда tmux для ввода ключевых вводов выглядит следующим образом:

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

Однако, какуне, кажется, что наиболее удобные из существующих способов передачи текста выбора во внешнюю команду - это использование конвейера, а не аргумента. На данный момент это работает:

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

Этот вид делает то, что я хочу, но отправляет только основной выбор. Я действительно не могу использовать $ kak_selections, потому что это добавляет одинарные кавычки к выборкам, которые не будут анализироваться, как задумано SBCL. Даже если это не так, я бы предпочел, чтобы он вел себя больше как alt + |, который передает выборки в их собственные экземпляры команды. Есть ли в Какуне существующий способ сделать это? Если нет, то будет ли легко написать сценарий sh, который преобразует stdin в аргумент tmux, заключенный в кавычки?

1 Ответ

0 голосов
/ 04 ноября 2018

Мне не удалось найти какой-либо встроенный способ сделать это, но этот вопрос / ответ помог: Передача результата команды в качестве аргумента

В итоге я остановился на этой команде, которая будет запускаться извне (чтобы я мог использовать поведение трубопровода по умолчанию в Какуне)

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

...