我正在运行gnu-linux(具体来说是linux Mint)。以下是我想要的工作流程:
- 我在进程1000中打开vim,然后在进程1001中启动一个python解释器
- 我在vim中写了一些代码,然后选择某些行,然后将这些行写入文件
/proc/1001/fd/0
- 在这一点上,我希望python解释器将其解释为代码,并像直接输入一样执行它
这不能按预期工作。相反,文本显示在解释器的屏幕上,但不执行(类似于在bash中显示子流程的错误消息)。我认为这与我的工作流程在readline(或某种等效库)中运行不好有关。或者我的问题可能只是python解释器从来没有被设计成这样使用(可能是出于安全和其他原因)。
我知道有很多IDE具有类似的功能,但我希望一些简单的东西可能会起作用。我很好奇这是可以修复的,还是我误解了一些根本的东西。
它存在,它被称为vim黏液
唯一的要求是在tmux
或screen
中运行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