繁体   English   中英

vim map命令ipython

[英]vim map command ipython

我正在尝试映射一个从https://github.com/ivanov/vim-ipython启动ipython qtconsole和下一个IPython的函数。

我所做的是:

map <key> :!ipython qtconsole&:IPython<CR>

当我在vim上按<key>时,它运行良好,但是来自ipython控制台的消息显示在vim编辑器上,因此我看不到我的代码。

所以我尝试了:

nnoremap <silent> <key> :!ipython qtconsole&:IPython<CR>

但是什么都没有改变。

这是从ipython显示的消息:

[IPKernelApp] To connect another client to this kernel, use:
[IPKernelApp] --existing kernel-4812.json
void DBusMenuExporterPrivate::addAction(QAction*, int): Already tracking action "%%!" under id 54 
void DBusMenuExporterPrivate::addAction(QAction*, int): Already tracking action "%%capture" under id 56 
void DBusMenuExporterPrivate::addAction(QAction*, int): Already tracking action "%%timeit" under id 57 
...

任何想法?

您可以使用&>/dev/null (在&之前)或使用system()代替bang :call system('ipython qtconsole&')|IPython

我想您可能需要:IPython iPython for ipython之前的sleep命令才能有机会开始。

您在这里还有另一个问题:!ipython qtconsole&:IPython使用qtconsole参数启动ipython并尝试在shell的单独线程运行命令:IPython 显然,shell对vim命令一无所知。 &<CR>替换&

我终于想出了一些可行的方法。 对于那些有兴趣通过按键启动vim-ipython的人,这里是这样做的方法。 因此,在.vimrc中,我添加了以下功能:

function! ViPy()
    call system('ipython qtconsole &>/dev/null &')
    :sleep 500m "400m not enough so ...
    :py km_from_string("*") "same as :IPython
endfunction

这是映射的键:

map <F12> :call ViPy()<CR>

也许有更好的方法可以做到这一点。 谢谢张贴。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM