Linux:写入python解释器进程的stdin,并让该进程将输入作为代码进行评估



我正在运行gnu-linux(具体来说是linux Mint)。以下是我想要的工作流程:

  1. 我在进程1000中打开vim,然后在进程1001中启动一个python解释器
  2. 我在vim中写了一些代码,然后选择某些行,然后将这些行写入文件/proc/1001/fd/0
  3. 在这一点上,我希望python解释器将其解释为代码,并像直接输入一样执行它

这不能按预期工作。相反,文本显示在解释器的屏幕上,但不执行(类似于在bash中显示子流程的错误消息)。我认为这与我的工作流程在readline(或某种等效库)中运行不好有关。或者我的问题可能只是python解释器从来没有被设计成这样使用(可能是出于安全和其他原因)。

我知道有很多IDE具有类似的功能,但我希望一些简单的东西可能会起作用。我很好奇这是可以修复的,还是我误解了一些根本的东西。

它存在,它被称为vim黏液

唯一的要求是在tmuxscreen中运行Python解释器,甚至更好:byobu

如果您使用的是vim病原体:,安装vim slim插件很容易

cd ~/.vim/bundle
git clone git://github.com/jpalardy/vim-slime.git

有关配置详细信息,请参阅vim slime页面,但如果您使用tmux,只需将以下内容添加到.vimrc中,然后重新启动vim:

let g:slime_target = "tmux"

尝试一下

在Vim:中键入一些Python代码

def fib():
    a, b = 0, 1
    while 1:
        yield a
        a, b = b, a + b

然后按Ctrl-c-Ctrl-c[/kbd>告诉vim-slim将当前缓冲区的内容发送到另一个窗口。第一次运行它时,vim-slim会询问您要将它发送到哪个screen/tmux窗口,但之后,按下键序列,它会将它发送给您第一次告诉它的任何地方。

vim slim也是视觉模式感知!如果您只想向Python发送几行,请使用V进入可视化行模式,高亮显示所需的行,然后按相同的Ctrl-c-Ctrl-c

最新更新