2
我想通過使用此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
- 電子郵件
工作時,它們出現在某個預定義的緩衝區中。
在此先感謝。
感謝您的鏈接。太傷心。 – 2009-08-24 13:21:30