Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:drop for:buffer-如果buffer已通过tab autocomplete打开,则跳转到窗口_Vim - Fatal编程技术网

Vim:drop for:buffer-如果buffer已通过tab autocomplete打开,则跳转到窗口

Vim:drop for:buffer-如果buffer已通过tab autocomplete打开,则跳转到窗口,vim,Vim,已向我介绍了:drop命令,该命令类似于:edit,但如果存在使用相同路径打开的缓冲区,则该命令将重点放在现有窗口上,而不是占用当前窗口 是否有类似于:drop的命令,这样当我尝试使用tab complete时,就不会像:drop那样列出当前目录中的文件,而是像:buffer那样在打开的缓冲区中搜索?您可以尝试:sbuffer。它的工作原理类似于:buffer,只是它尝试跳转到显示所需缓冲区的第一个窗口,默认情况下在新窗口中打开它。其行为由switchbuf选项控制 :help :sbuffer

已向我介绍了
:drop
命令,该命令类似于
:edit
,但如果存在使用相同路径打开的缓冲区,则该命令将重点放在现有窗口上,而不是占用当前窗口


是否有类似于
:drop
的命令,这样当我尝试使用tab complete时,就不会像
:drop
那样列出当前目录中的文件,而是像
:buffer
那样在打开的缓冲区中搜索?

您可以尝试
:sbuffer
。它的工作原理类似于
:buffer
,只是它尝试跳转到显示所需缓冲区的第一个窗口,默认情况下在新窗口中打开它。其行为由
switchbuf
选项控制

:help :sbuffer
:help 'switchbuf'

谢谢使用
:set switch buf+=useopen
:tab sbuffer file
可以满足我的要求。对OP的问题的回答很好,但准确地说,
:sbuffer
的工作方式与
:buffer
不同,它会在另一个窗口中找不到目标时分割当前窗口,当它的目标是当前缓冲区时,它也会这样做(一个无操作的
:buffer
)。@kopischke,所有这些都在
:help:sbuffer
@romainl-yup中解释过,但您的回答是“它的工作原理类似于:buffer,只是它试图跳转到第一个显示所需缓冲区的窗口,然后在新窗口中打开它”,这实际上是不正确的,即使您链接到正确的文档。也许可以修改那句话?