我已经用map <f2> :w<cr>:! D:\Python34\python %<cr>
设置了F2提示键,当我在vim中打开python文件并按F2时,将执行python文件。举个简单的例子,
这是我的python文件,在gvim中打开。
现在我无法输入其他python行,我唯一能做的就是查看结果并按任意键关闭此窗口。
我想要的是:
当我按F2,(python文件在gvim中打开)时,python控制台弹出,python文件中的所有文件都自动复制到python控制台,我可以拒绝输入一些行,如{{ 1}}在python控制台或继续编辑gvim,我是一个懒人,gvim和python控制台都打开等待为我服务,我可以写一个vim脚本来实现目标吗?
命令Obj().hello
工作正常,我得到了输出
还有一个问题,
1)当命令:!D:\Python34\python -i %
工作时,gvim窗口将被冻结,我无法拖动鼠标来查看vim中的代码。
2)python控制台wiondow中没有任何python代码
因此,如果程序中有很多行,并且我记不起以前的内容,更糟糕的是,gvim窗口被冻结,我怎样才能获得代码?
答案 0 :(得分:1)
要使调用异步(以避免在Python会话期间阻止GVIM),请使用特定于Windows的:!start
命令:
nnoremap <f2> :w<cr>:!start D:\Python34\python -i %<cr>
我不知道是否可以从交互式Python调试器列出传递的源代码。但您可以在启动之前打印文件内容:
nnoremap <f2> :w<cr>:!start cmd /c type % && D:\Python34\python -i %<cr>
:noremap
;它使映射不受重映射和递归的影响。:nnoremap
(或将其扩展为支持可视模式选择)。答案 1 :(得分:0)
:ConqueTermVSplit python -i test.py
类型(VSplit用于垂直拆分 - 您可以使用水平方式)答案 2 :(得分:0)
您可以从Python角度(2.7)处理问题。
import demo
demo.SomeModule().meth()
reload(demo)
demo.SomeModule().differentMeth()
你也可以让vim创建一个带有快捷功能的文件,用于加载/重新加载你正在处理的文件。当vim启动解释器时,您可以将此文件设置为PYTHONSTARTUP
环境变量,该变量是解释器在启动时自动加载的文件。例如,您可以使用一个名为r()
的函数来自动重新加载您正在处理的文件。
还值得一提的是,重装模块可能有点奇怪。如果您实例化某些模块然后重新加载该文件,则只有 new 模块将使用新代码;旧模块将使用旧代码运行。