私はこのPythonコードを使って別のスレッドからVimのバッファを埋めようとしています。Vimのpythonのbuffer.append(行)スイッチウィンドウのフォーカス
python << PYTHON_CODE
import vim
import time
buffer_number = -1
class AppendLineTest(Thread):
def run(self):
buffer = vim.buffers[buffer_number - 1]
for i in range(10):
buffer.append('Line number %s' % i)
time.sleep(1)
PYTHON_CODE
function! s:test()
split TestBuffer
exec 'python buffer_number = '.bufnr('%')
setlocal noswapfile
setlocal bufhidden=delete
setlocal buftype=nofile
setlocal nobuflisted
setlocal nonumber
setlocal nowrap
setlocal nocursorline
python AppendLineTest().start()
endfunction
command! -nargs=0 PythonAppendTest call s:test()
私は別のスレッドからVimのバッファにアクセスが許可されていることを確認していないと不思議いくつかの安全な発送方法があります。 しかし、許可されていれば、行を追加するときにカーソルが飛び降りるのを避けたいです。
動作を再現するには、コードをいくつかのname.vimファイルに保存し、Vimで開きます。その後
:source %
そして
PythonAppendTest
行は一時バッファに10回を追加されます。あなたがいたウィンドウにカーソルを戻すだけで、私が話していることを理解することができます。
あなたはなぜ誰かがここでは、別のスレッドからのバッファに行を追加する必要があることができます不思議場合の例である:
- UNIXのトップ
- UNIXテール
- RSS
- メール
作業中は、あらかじめ定義されたバッファに表示されます。
ありがとうございます。
リンクありがとうございます。あまりにも悲しい。 –