0

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 
...

何か案が?

4

2 に答える 2

1

&>/dev/null(before &)を使用するかsystem()、 bang: の代わりに使用して、 ipython を無効にすることができます:call system('ipython qtconsole&')|IPython

ただし、ipythonを起動するsleep前にコマンドが必要になると思います。:IPython

ここに別の問題があります:引数を指定して:!ipython qtconsole&:IPythonipython を起動し、 shellの別のスレッドでqtconsoleコマンドを実行しようとします。明らかに、シェルはvimコマンドについて何も知りません。に置き換えます。:IPython&&<CR>

于 2013-11-12T04:47:47.507 に答える
0

私はついに機能するものを思いつきました。キーを押して 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>

それを行うためのより良い方法があるかもしれません。投稿ありがとうございます。

于 2013-11-13T19:48:38.240 に答える