Vim: запуск выбранного кода в постоянной REPL-среде - PullRequest
9 голосов
/ 26 октября 2011

R, Python, Scala и т. Д. Все поставляются с REPL-средами, которые я не хочу пропустить, однако большую часть времени редактирование текста в них - отстой, поэтому я редактирую код в vim, вставляю его и смотрюна выходе и снова отредактируйте код в vim.

Я могу запустить текущий файл с помощью !python %, и я могу запустить текущую строку с еще большим количеством волшебства vim, однако это запустит новый процессинтерпретатор.

Можно ли запустить REPL и отправить строки кода в запущенный REPL (и получить результаты обратно, очевидно)?

Ответы [ 4 ]

10 голосов
/ 26 октября 2011

Возможно, вам нужен один из этих двух плагинов:

на основе tmux
2 голосов
/ 29 октября 2014

Я недавно написал плагин для очень схожей цели: vim-notebook , который позволяет пользователю поддерживать фоновый процесс и заставлять его оценивать часть текущего документа (и записывать вывод вдокумент).Он предназначен для использования в документах в стиле блокнота, содержащих фрагменты кода для оценки.

2 голосов
/ 10 ноября 2011

Не только для обычного Python, но если вы используете IPython 0.11 или более позднюю версию, взгляните на vim-ipython .

Используя этот плагин, вы можете отправлять строки или целые файлы для выполнения IPython, а также возвращать самоанализ объекта и дополнения слов в Vim, например, что вы получаете: object?<enter> и object.<tab> в IPython. Кроме того, vim-ipython имеет режим «оболочки», в котором при отправке строк в IPython вы можете увидеть результаты этих строк в специализированном буфере. Смотрите второй скринкаст на этот пост

2 голосов
/ 27 октября 2011

Попробуйте Conque :

""» Conque - это плагин Vim, который позволяет запускать интерактивные программы, такие как bash для linux или powershell.exe в Windows, внутри буфера Vim. "" "

Его можно легко настроить для открытия интерпретатора Python, а сопоставление клавиш можно использовать для передачи текущей строки для выполнения (F9 для текущей строки, F10 для текущего файла и т. Д.).

...