Vim 在选项卡中设置文件名

Vim 在选项卡中设置文件名,vim,Vim,当我使用Vim打开多个文件时,有人能告诉我如何在选项卡中显示文件名吗? 在选项卡上有一个名称会使更改不同的文件更容易。我想你的问题是如何在选项卡标签上只显示文件名。如果是这个问题,我的答案是: 在gui vim中,您将使用: :set guitablabel=%t 然而,如果是在vim中,它会变得更复杂一点。您必须使用:tabline覆盖整行。我修改了中提供的示例,以添加您想要的行为。您需要将以下代码添加到vimrc中: set tabline=%!MyTabLine() function

当我使用Vim打开多个文件时,有人能告诉我如何在选项卡中显示文件名吗?
在选项卡上有一个名称会使更改不同的文件更容易。

我想你的问题是如何在选项卡标签上只显示文件名。如果是这个问题,我的答案是:

在gui vim中,您将使用:

:set guitablabel=%t
然而,如果是在vim中,它会变得更复杂一点。您必须使用:tabline覆盖整行。我修改了中提供的示例,以添加您想要的行为。您需要将以下代码添加到vimrc中:

set tabline=%!MyTabLine()

function MyTabLine()
  let s = ''
  for i in range(tabpagenr('$'))
    " select the highlighting
    if i + 1 == tabpagenr()
      let s .= '%#TabLineSel#'
    else
      let s .= '%#TabLine#'
    endif

    " set the tab page number (for mouse clicks)
    let s .= '%' . (i + 1) . 'T' 

    " the label is made by MyTabLabel()
    let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
  endfor

  " after the last tab fill with TabLineFill and reset tab page nr
  let s .= '%#TabLineFill#%T'

  " right-align the label to close the current tab page
  if tabpagenr('$') > 1 
    let s .= '%=%#TabLine#%999Xclose'
  endif

  return s
endfunction

function MyTabLabel(n)
  let buflist = tabpagebuflist(a:n)
  let winnr = tabpagewinnr(a:n)
  let label =  bufname(buflist[winnr - 1]) 
  return fnamemodify(label, ":t") 
endfunction

我希望这有帮助

我想你的问题是如何在标签上只显示文件名。如果是这个问题,我的答案是:

在gui vim中,您将使用:

:set guitablabel=%t
然而,如果是在vim中,它会变得更复杂一点。您必须使用:tabline覆盖整行。我修改了中提供的示例,以添加您想要的行为。您需要将以下代码添加到vimrc中:

set tabline=%!MyTabLine()

function MyTabLine()
  let s = ''
  for i in range(tabpagenr('$'))
    " select the highlighting
    if i + 1 == tabpagenr()
      let s .= '%#TabLineSel#'
    else
      let s .= '%#TabLine#'
    endif

    " set the tab page number (for mouse clicks)
    let s .= '%' . (i + 1) . 'T' 

    " the label is made by MyTabLabel()
    let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
  endfor

  " after the last tab fill with TabLineFill and reset tab page nr
  let s .= '%#TabLineFill#%T'

  " right-align the label to close the current tab page
  if tabpagenr('$') > 1 
    let s .= '%=%#TabLine#%999Xclose'
  endif

  return s
endfunction

function MyTabLabel(n)
  let buflist = tabpagebuflist(a:n)
  let winnr = tabpagewinnr(a:n)
  let label =  bufname(buflist[winnr - 1]) 
  return fnamemodify(label, ":t") 
endfunction

我希望这有帮助

我的意思是,当我在vim中打开任何文件时,它应该显示文件名,而不是在顶部显示vim的选项卡。这段代码会这样做吗?我尝试将粘贴原样复制到我的.vimrc中,当我源.vimrc时,它会给我错误:-bash:.vimrc:line 3:意外标记附近的语法错误“-bash:.vimrc:line 3:set tabline=%!MyTabLine'在vim中打开文件是什么意思?比如vim里面的标签?或者当您从终端打开vim文件名时?该脚本用于当您使用tabnew打开一个新选项卡时,该选项卡的标签将是没有路径的文件名。另一方面,您不需要为配置文件Vimrc提供源代码。那是维姆的工作。看,是的,我指的是第一种情况。因此,如果我在vim中打开一个文件a.c,然后在vim中执行另一个选项卡并打开b.c,该选项卡应显示a.c和b.c…就像浏览器中有多个选项卡时,可以通过名称区分每个选项卡…我希望与vim中的类似…我复制了您提供的内容。。。。上面的另一行是.vimrc中的语法on,非常感谢您的解决方案。我有vim,不是gvim。。谢天谢地,Aganii的意思是,当我在vim中打开任何文件时,它应该显示文件名,而不是在顶部显示vim,这段代码会这样做吗?我尝试将粘贴原样复制到我的.vimrc中,当我创建.vimrc时,它会给我错误:-bash:.vimrc:line 3:意外标记附近的语法错误“-bash:.vimrc:line 3:set tabline=%!MyTabLine'在vim中打开文件是什么意思?比如vim里面的标签?或者当您从终端打开vim文件名时?该脚本用于当您使用tabnew打开一个新选项卡时,该选项卡的标签将是没有路径的文件名。另一方面,您不需要为配置文件Vimrc提供源代码。那是维姆的工作。看,是的,我指的是第一种情况。因此,如果我在vim中打开一个文件a.c,然后在vim中执行另一个选项卡并打开b.c,该选项卡应显示a.c和b.c…就像浏览器中有多个选项卡时,可以通过名称区分每个选项卡…我希望与vim中的类似…我复制了您提供的内容。。。。上面的另一行是.vimrc中的语法on,非常感谢您的解决方案。我有vim,不是gvim。。再次感谢