【问题标题】:Vim: Run selected code in a persistent REPL-environmentVim:在持久的 REPL 环境中运行选定的代码
【发布时间】:2011-10-26 18:03:13
【问题描述】:

R、Python、Scala 等都带有 REPL 环境,我不想错过,但是,大多数时候在其中编辑文本很糟糕,所以我在 vim 中编辑代码,粘贴并查看在输出并再次在 vim 中编辑代码。

我可以用!python % 运行当前文件,我可以用更多的vim 魔法运行当前行,但是,这将启动解释器的一个新进程。

是否可以启动一个 REPL 并将代码行发送到正在运行的 REPL(很明显,然后返回结果)?

【问题讨论】:

标签: vim read-eval-print-loop


【解决方案1】:

也许这两个插件之一就是你需要的:

【讨论】:

  • Slime 现在支持 tmux、screen 和 whimrepl。它也有更多的追随者。
【解决方案2】:

试试Conque:

""" Conque 是一个 Vim 插件,它允许您在 Vim 缓冲区内运行交互式程序,例如 linux 上的 bash 或 Windows 上的 powershell.exe。 """

它可以很容易地配置为打开一个 Python 解释器,并且可以使用一个键映射来将当前行传递给它以执行(F9 表示当前行,F10 表示当前文件等)。

【讨论】:

    【解决方案3】:

    不单单用于纯 python,但如果您使用的是 IPython 0.11 或更高版本,请查看vim-ipython

    使用这个插件,您可以发送行或整个文件供 IPython 执行,还可以在 Vim 中取回对象自省和单词补全,就像您在 IPython 中获得的:object?<enter>object.<tab>。此外,vim-ipython 有一个“shell”模式,当你向 IPython 发送行时,你可以看到这些行在专门缓冲区中产生的结果。见second screencast on this post

    【讨论】:

      【解决方案4】:

      我最近为一个非常相似的目的编写了一个插件:vim-notebook,它允许用户保持后台进程处于活动状态并使其评估当前文档的一部分(并将输出写入文档中)。它旨在用于包含要评估的代码片段的笔记本式文档。

      【讨论】:

        【解决方案5】:

        也许你可以试试我的插件 vim-repl。它使用 vim8 终端功能为 vim 提供了一个令人信服的 repl 环境。

        这里是github主页:https://github.com/sillybun/vim-repl

        要打开repl环境,只需运行:REPLToggle或者你甚至可以绑定它的witk key:

        nnoremap <leader>r :REPLToggle<Cr>
        

        要与 repl 交互,您只需选择代码并按 &lt;leader&gt;w。并将代码传输到repl环境中。

        查看 github 主页了解更多详情,值得您花时间。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-10-17
          • 2013-08-24
          • 1970-01-01
          • 2022-06-17
          • 2020-09-22
          • 2020-08-23
          • 1970-01-01
          • 2020-06-17
          相关资源
          最近更新 更多