4

に追加map<F12> :!python %<cr>しました~/.vimrc。ただし、キーを押すと、このコマンドを実行した後、自動的に終了しました<F12>。通常は の行で停止するはずPress ENTER or type command to continueですが、私の場合はこの行を飛ばして vim に戻ります。誰かが密かに ENTER を押したようです。最も驚くべきことは、それが端末でのみ発生することです。`:!python % ' を手動で入力するか、gvim を使用すると、すべて問題ありません。この問題を解決する方法がわかりません。

4

1 に答える 1

3

端末版では、メッセージを読む前に画面を再描画している可能性があります。'lazyredraw'再描画を遅らせるように設定してみてください。

回避策'lazyredraw'として、関数呼び出しを設定getchar()してマッピングに追加することができます。

  function! RunPython()
     let s:save_lz = &lazyredraw   " save 'lazyredraw' setting
     set lazyredraw
     !python %
     call getchar()                " stop waiting pressing a key
     let &lazyredraw = s:save_lz   " restore 'lazyredraw'
  endfunction
  map <F12> :call RunPython()<CR>

編集:

また、 「SingleCompile : 単一のソース ファイルのコンパイルまたは実行をより便利にする」のように、このタスクにプラグインを使用することを検討することもできます。

于 2012-08-22T12:05:01.050 に答える