Отправка ввода в экранное окно из vim - PullRequest
1 голос
/ 30 ноября 2010

У меня настроена функция vim, в которой я могу выделить строку текста и выполнить в ближайшем будущем.Вот функция:

 function! Clojure_execline()
     let cl = (getline(line(".")))
     // ...
     exec 'clojure -e "' . cl . '"'
 endfunction

Проблема в том, что он запускается медленно и, поскольку он порождает новый сеанс clojure каждый раз, когда я его запускаю, я не могу вызвать функцию, которую запускал ранее.В идеале я хотел бы, чтобы выполнялся скрытый репл, где я мог бы отправлять входные данные из vim и извлекать выходные данные.Я узнал об gnu screen и подумал, что это может помочь мне, но я не знаю, как отправить входные данные из одного окна экрана в другое.

Чтобы прояснить мою проблему, возьмите следующую строку:1007 *

Я бы хотел выделить эту строку в vim и выполнить в запущенном репле.Я хочу иметь возможность вызвать строку ниже и выполнить ее в том же репле:

(add2 4 5)

После этого я бы хотел получить вывод функции.

Итак, в основном, мой вопрос, как я могу отправлять ввод из одного окна экрана в другое?

Ответы [ 4 ]

3 голосов
/ 01 декабря 2010

Предложение Джейка Маккрири - хорошее.Есть также пара других доступных сценариев, вероятно, основанных на той же идее:

VimClojure , которая говорит, что она "repl in vim buffer"

и

slimv , специально поддерживает Clojure

и

Gorilla , я думаю, что VimClojure, выше, основан на Gorilla

Я не знаю, действительно ли VimClojure делает то, что вы хотите, отправляя результат обратно с экрана в буфер в Vim.Я думаю, что одним из способов сделать это было бы найти что-то, используя функциональность клиент-сервер Vim, возможно с флагом --remote-send.Смотри:

:h client-server
:h --remote-send
2 голосов
/ 02 декабря 2010

Нашел то, что искал.Вы можете выполнить это из терминала, чтобы отправить строку непосредственно в стандартный экран окна:

$ screen -X stuff "ls -l\015" # \015 sends a carrige return.
2 голосов
/ 30 ноября 2010

У меня нет точного ответа, но, возможно, стоит взглянуть на slime.vim и посмотреть, можно ли извлечь из него что-нибудь.

сообщение в блоге об этом

скрипт на vim.org

0 голосов
/ 30 декабря 2010

Вас также может заинтересовать Conque http://code.google.com/p/conque/

Я использую его для Scala

...