how to let tab display only file name rather than the full path in vim

后端 未结 4 1270
Happy的楠姐
Happy的楠姐 2020-12-13 18:05

If the full path of a file is very long, you can\'t tell which file is in a given tab. so I\'m wondering is there is a way let the tab only disply the file name rather than

相关标签:
4条回答
  • 2020-12-13 18:51

    Try

    :set guitablabel=%t

    For format of possible options see

    :help 'statusline'

    0 讨论(0)
  • 2020-12-13 18:57

    I use this solution instead of Habi's as this one still keeps the default features of putting a '+' symbol in the tab to indicate the files being modified, as well as a count of the number of windows in the tab. So it basically works the same as the default tab labelling but just uses file names, not full paths.

    " Tab headings
    function GuiTabLabel()
        let label = ''
        let bufnrlist = tabpagebuflist(v:lnum)
    
        " Add '+' if one of the buffers in the tab page is modified
        for bufnr in bufnrlist
            if getbufvar(bufnr, "&modified")
                let label = '+'
                break
            endif
        endfor
    
        " Append the number of windows in the tab page if more than one
        let wincount = tabpagewinnr(v:lnum, '$')
        if wincount > 1
            let label .= wincount
        endif
        if label != ''
            let label .= ' '
        endif
    
        " Append the buffer name (not full path)
        return label . "%t"
    endfunction
    
    set guitablabel=%!GuiTabLabel()
    
    0 讨论(0)
  • 2020-12-13 19:05

    I have the following in my vimrc:

    set guitablabel=\[%N\]\ %t\ %M 
    

    which outputs: [Number] Filename and + sign if a file is modified ([4] foo.html +). Number is very useful to immediate switch to the chosen tab with command [Number]gt (4gt if I want to jump to the file in the tab 4)

    0 讨论(0)
  • 2020-12-13 19:10

    The other solutions only work for GUI VIM and does not work for terminal vim or embedded vim (nvim).

    You can use vim-plug and vim-airline. Then, add this to your .vimrc.

    call plug#begin(stdpath('data') . '/plugged')
    Plug 'vim-airline/vim-airline'
    Plug 'vim-airline/vim-airline-themes'
    call plug#end()
    
    let g:airline#extensions#tabline#enabled = 1
    let g:airline#extensions#tabline#fnamemod = ':t'
    
    0 讨论(0)
提交回复
热议问题