web-dev-qa-db-ja.com

vimにpythonインタラクティブランタイムウィンドウを持たせる方法

pythonライブプログラムモードウィンドウをpythonで開いて、プログラムを呼び出して、vimをCMDにジャンプアウトする代わりにライブ結果をすぐに確認できるようにすることは可能ですか? VisualStudioのセットアップに少し似ています。

1
NewPy

Vim8で*

基本オプション

:w name-of-python-script.py    
:term python name-of-python-script.py    
:close    

この意志:
-スクリプトを保存します
-vim内でターミナルを開く
-スクリプトを実行し、出力を表示します
-ターミナルウィンドウを閉じます
-カーソルを元のウィンドウに戻します

別のオプションは(ipythonを使用):

この意志:
-ipythonでvimターミナルを開く
-編集バッファーをpythonスクリプト(myscript.py)として保存します
-:term_sendkeys()を使用して、ipython%runコマンドを:termウィンドウに送信します。

この例では、:terminalがバッファ「2」であると想定しています。

:call term_sendkeys(2, "%run myscript.py\<cr>")

'call term_sendkeys(..)'をキーにマップできるため、ipythonバッファーでスクリプトを実行すると効率的です。

:nnoremap <leader>zr :term_sendkeys(2, "%run myscript.py\<cr>")

そして別のオプションは(pythonまたはipython):のいずれかを使用することです

この意志:
-pythonまたはipythonのいずれかでvimターミナルを開きます
-編集バッファーをレジスター(この例では二重引用符で囲むレジスター)にヤンクします。:%y"
-バッファの内容をpythonインタプリタに送信する

:call term_sendkeys(2, @")
  • 次に、使いやすさのためにキーにマップします。
:nnoremap <leader>zk :%y \| :call term_sendkeys(2, @")<CR>
1
DC Slagel