Je suis en train d'essayer de remplir le tampon de Vim à partir d'un thread séparé en utilisant ce code python.
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('Ligne numéro %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()
Je ne suis pas sûr que l'accès aux tampons de Vim à partir de threads séparés soit autorisé et je me demande s'il existe un moyen de lancer en toute sécurité. Mais si c'est autorisé, je voudrais me débarrasser du saut de curseur lorsque la ligne est ajoutée.
Pour reproduire le comportement, enregistrez le code dans un fichier nommé nom.vim et ouvrez-le dans Vim. Puis
:source %
Et ensuite
PythonAppendTest
Les lignes seront ajoutées 10 fois au tampon temporaire. Il vous suffit de déplacer le curseur vers la fenêtre où vous étiez et vous comprendrez de quoi je parle.
Si vous vous demandez pourquoi quelqu'un aurait besoin d'ajouter des lignes aux tampons à partir d'un thread séparé, voici un exemple:
- unix top
- unix tail
- rss
Pendant que vous travaillez, elles apparaissent dans un tampon prédéfini.
Merci d'avance.