在使用Vim编辑Python这类的脚本时,如何在下方嵌入一个小小的shell,以方便观察输出结果?

[问题描述]
希望不要跳出Vim
希望是:在normal-mode下,按某一个键,然后下方有一个小小的shell窗口,方便观察输出(就像IDE做的那样)
有时候只是为了验证一下某些想法,频繁在Vim和Shell之间切换也不是办法

[环境&重现]
Ubuntu14-Vim7.4(不兼容Vi)

update
解决了
不要重复造轮子,自己弄的不仅不好而且由于不熟悉vim脚本那一套语法, 最终也是一个蹩脚的轮子

请Google搜索 'vim quickrun'

阅读 8.4k
10 个回答

可以用:

  • neovim 的 terminal

  • tmux + vim

  • vim + Conque-Shell

直接执行 :!python a.py 可以啦!
另外非要映射快捷键的话,我使用了一个大神的vim配置,很完善,k-vim, 他里面就有一个运行按键设置::F10 就跟:!python a.py的效果一样,

clipboard.png

vim的make就会在下方显示执行结果呀。
在vim里执行shell的插件没有我特别满意的。所以后来用了tmux和vim,但是可能会出一些问题,而且再有gui的系统里总觉得不好。
所以现在用的是vim + tilda。类似tilda的小工具很多,你搜一下吧,我都忘记叫什么了。

分窗口你肯定会的
!!执行命令行,并把结果写入当前buffer
宏和键绑定

这几个结合起来就是你要的

@shomy 的方法可以稍微改进一下:

:!python %

% 指代当前文件, 执行之前你需要先保存一下.

使用neovim,里面有terminal窗口。

这是我的:

function Result_of_run(run_sign)
    "!ls这样运行, 显示的结果会切换到shell界面
    echo system(a:run_sign . shellescape(expand('%')))
endfunction

autocmd BufNewFile,BufRead *.py nnoremap <buffer> <F2> :up<CR>:call Result_of_run("python ")<CR>

nnoremap <leader>r :!%:p<CR>