如何使用 Python API 在 neovim 中获取当前缓冲区中的文本?
How to get text in current buffer in neovim using Python API?
我想使用 Python API (pynvim) 为 neovim 制作一个插件。问题是我想获取当前缓冲区的文本,实时更新。我在网上搜索过,但没有找到任何有用的(或可理解的)文档。
您可以使用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])
我想使用 Python API (pynvim) 为 neovim 制作一个插件。问题是我想获取当前缓冲区的文本,实时更新。我在网上搜索过,但没有找到任何有用的(或可理解的)文档。
您可以使用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])