how to let tab display only file name rather than the full path in vim
Try
:set guitablabel=%t
For format of possible options see
:help 'statusline'
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()
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)