Vim 如何将行附加到非活动窗口缓冲区并将该窗口滚动到底部

Vim 如何将行附加到非活动窗口缓冲区并将该窗口滚动到底部,vim,Vim,我想开发一个vim插件,将一些行写入非活动窗口(一些用于异步命令输出的窗口等) 我知道我可以使用“setbufline”写入缓冲区,并使用redraw绘制vim屏幕。但我找不到将特定窗口滚动到底的功能。是否有类似“cbottom”的功能,但适用于普通窗口 假设您知道要滚动的窗口的windowId,并将其存储在变量g:scrollWinId: let curWinId = win_getid() call win_gotoid(g:scrollWinId) normal! G call win_g

我想开发一个vim插件,将一些行写入非活动窗口(一些用于异步命令输出的窗口等)


我知道我可以使用“setbufline”写入缓冲区,并使用redraw绘制vim屏幕。但我找不到将特定窗口滚动到底的功能。是否有类似“cbottom”的功能,但适用于普通窗口

假设您知道要滚动的窗口的windowId,并将其存储在变量
g:scrollWinId

let curWinId = win_getid()
call win_gotoid(g:scrollWinId)
normal! G
call win_gotoid(curWinId)
我不知道Vim脚本或autocmd中有一个简单的函数可以使用


顺便说一句:您可能想使用
appendbufline
而不是
setbufline

使用
normal会稍微可靠一些!G
。如果有人将
G
映射到他们自己的vimrc中不同的东西,
normal
将使用内置的。@AndrewRadev已更新。