在vim中,如何在新选项卡中打开文件,或者如果文件已经打开,如何切换到包含该文件的选项卡?

在vim中,如何在新选项卡中打开文件,或者如果文件已经打开,如何切换到包含该文件的选项卡?,vim,Vim,有没有办法让vim在新选项卡中打开尚未打开的文件,或者打开包含该文件的选项卡?我知道有:tab drop file,但这仅适用于vim的GUI版本,我需要它用于CLI版本。我必须为它创建自己的命令: command! -complete=file -nargs=1 Open call Open(<f-args>) function! Open (file) let b = bufnr(a:file) for t in range(tabpagenr("$"))

有没有办法让vim在新选项卡中打开尚未打开的文件,或者打开包含该文件的选项卡?我知道有
:tab drop file
,但这仅适用于vim的GUI版本,我需要它用于CLI版本。

我必须为它创建自己的命令:

command! -complete=file -nargs=1 Open call Open(<f-args>)
function! Open (file)
    let b = bufnr(a:file)
    for t in range(tabpagenr("$"))
        let a = tabpagebuflist(t + 1)
        for i in a
            if i == b
                exec "tabn " . (t + 1)
                return
            endif
        endfor
    endfor
    if bufname("%") == "" && !&modified
        exec "e " . fnameescape(a:file)
        return
    endif
    exec "tabe " . fnameescape(a:file)
endfunction
命令-complete=file-nargs=1 Open call Open()
功能!打开(文件)
设b=bufnr(a:file)
对于范围内的t(tabpagenr($))
设a=tabpagebuflist(t+1)
因为我在一个
如果i==b
执行“tabn”。(t+1)
返回
恩迪夫
外循环
外循环
如果bufname(“%”=“”&&&&被改进的
执行“e”。fnameescape(a:文件)
返回
恩迪夫
执行“tabe”。fnameescape(a:文件)
端功能

:drop
要求使用
gui
选项编译Vim,如果有帮助的话,并不是说它实际上在gui上运行。不要使用选项卡页作为文件代理。你是什么意思?