如何使用Python API在neovim中获取当前缓冲区中的文本?

2024-04-30 02:07:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用pythonapi(pynvim)为neovim制作一个插件。问题是我想得到当前缓冲区的文本,实时更新。我在网上搜索过,没有找到任何有用的(或可以理解的)文档


Tags: 文档文本插件pythonapi缓冲区neovimpynvim
1条回答
网友
1楼 · 发布于 2024-04-30 02:07:07

您可以使用pynvim订阅neovim中的事件。请记住pynvim是异步的,但我的示例使用了一个简单的while循环,演示了如何监视缓冲区中的实时更改并获取其内容

from time import sleep
from pynvim import attach, api

nvim = attach('socket', path='/tmp/nvim')

buffer = nvim.current.buffer

event = api.nvim.Nvim.from_nvim(nvim) # use the loaded nvim session
listen = event.subscribe('TextChangedI') # refer to events https://neovim.io/doc/user/autocmd.html#events

while True:
    sleep(2)
    print(listen)
    # read and print contents of the whole buffer
    for line in range(len(buffer)):
        print(buffer[line])

相关问题 更多 >