微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Linux:写入python解释器进程的标准input并将该input作为代码进行评估

我正在运行gnu linux(Linux Mint要具体)。 以下是我期望的工作stream程:

我在(例如)过程1000中打开vim,然后在进程1001中启动python解释器。

我在vim中编写了一些代码,然后select某些行,然后将这些行写入文件/proc/1001/fd/0 。

在这一点上,我希望Python解释器将其解释为代码,并将其作为代码直接input。

这不符合要求。 相反,文本显示在解释器的屏幕上,但不会执行(与在bash中显示子stream程的错误消息时类似)。 我认为这与我的工作stream程在readline(或某种等效的库)下运行不好有关。 或者我的问题可能只是python解释器从来没有被devise成这样使用(大概是安全和其他原因)。

我知道有很多类似function的IDE,但我希望简单的东西可以工作。 我很好奇,如果这是可以解决的问题,或者是我误解了一些基本的东西。

如何删除第N行linux的最后一个字符

Linux的GNU getopt:忽略未知的可选参数?

Bashvalidationdate

bash脚本返回空的ps结果,CLI中的相同单行返回正确

`os.symlink` vs`ln -s`

当从pipe道bash脚本运行时,Python脚本不等待用户input

分号在Linux命令行上

将jps -vl命令的输出分配给shell脚本中的variables

在shell脚本中使用Git Pull命令而不必手动input密码

如何在C中执行bash命令并检索输出

它存在,它叫做vim-slime

唯一的要求是你在tmux或者screen运行Python解释器,或者甚至更好: byobu

如果您使用vim-pathogen,安装vim-slime插件很简单:

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来告诉vim-slime将当前缓冲区的内容发送到另一个窗口。 当你第一次运行它时, vim-slime会询问你把哪个screen / tmux窗口发送给它,但是之后按下按键序列,它会在你第一次告诉它的地方发送它。

vim-slime也是视觉模式的! 如果你只想发送几行到Python,用V键进入可视化行模式,高亮显示你想要的行,然后按相同的Ctrl-c – Ctrl-c键顺序发送这些行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐