Vim 如何为预览窗口设置自动命令';什么是缓冲区?

Vim 如何为预览窗口设置自动命令';什么是缓冲区?,vim,Vim,如何设置自动命令以单独触发预览窗口的缓冲区?我有一个可以在quickfix窗口上工作,因为它的文件类型是qf,所以我可以为它设置文件类型自动命令。我已经检查了quickfix窗口的缓冲区文件类型,但它是空的。没有明确的事件,但是您可以通过'previewwindow'选项轻松检查预览窗口,并将其与另一个事件相结合,例如WinEnter: :autocmd WinEnter * if &previewwindow | ... | endif 当前接受的答案没有解决我的问题,因为它只在进入

如何设置自动命令以单独触发预览窗口的缓冲区?我有一个可以在quickfix窗口上工作,因为它的文件类型是
qf
,所以我可以为它设置文件类型自动命令。我已经检查了quickfix窗口的缓冲区文件类型,但它是空的。

没有明确的事件,但是您可以通过
'previewwindow'
选项轻松检查预览窗口,并将其与另一个事件相结合,例如
WinEnter

:autocmd WinEnter * if &previewwindow | ... | endif

当前接受的答案没有解决我的问题,因为它只在进入预览窗口时触发,而不是在创建预览窗口时触发

多亏了,我发现,
bufwenter
在创建预览窗口时确实会启动

autocmd! BufWinEnter * if &previewwindow | call s:previewWinSettings() | endif

只有在已加载的缓冲区上使用
:pedit
时,才会触发预览缓冲区。

是否还有一种方法可以在没有窗口事件或检查窗口属性的情况下检测预览缓冲区?@Arne事件会触发代码,属性会测试窗口;这就是Vim的API的工作原理。为什么你想用另一种方式?我在问,因为这是一个窗口事件,所以当我进入窗口时。关键是,我不想进入窗口。我想将PreviewIndow的缓冲区设置为未列出,然后用
:bn
输入。因此,我想在BufCreate事件中触发它,我的焦点是明确的而不是PreviewIndow。@Arne:根据我的测试,你甚至可以在
BufAdd
上选中
&PreviewIndow
。这适用于不聚焦窗口的
:pedit