[英]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.