Vim是非常高效的编辑器,我喜欢每天都使用它,但我发现在标签之间移动需要的时间比应该多。
当我想切换到另一个标签时,我经常多次重复gt
或gT
。 Vim提供了更好的方式来覆盖所需的标签 - n
+ gt
,其中n
是标签号。但要使用它,您应首先计算标签号。如果打开十几个标签,很快就会变得无聊。
我认为枚举标签会很好。文件名前面每个选项卡上的单个数字,如下所示:
1 Readme | 2 main.c | 3 main.h | 4 process.h
我希望可以通过编辑配置或使用一些插件来配置vim来实现这一点。
有没有办法实现它?
答案 0 :(得分:5)
您可以使用tabline
选项在vim的控制台模式下设置选项卡的标签。
请参阅:h setting-tabline
上的帮助,该帮助还会显示一个非常基本的最小示例,您可以根据需要进行调整,例如:为了你想要的,我会用这样的东西:
fu! MyTabLabel(n)
let buflist = tabpagebuflist(a:n)
let winnr = tabpagewinnr(a:n)
let string = fnamemodify(bufname(buflist[winnr - 1]), ':t')
return empty(string) ? '[unnamed]' : string
endfu
fu! 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'
" display tabnumber (for use with <count>gt, etc)
let s .= ' '. (i+1) . ' '
" the label is made by MyTabLabel()
let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
if i+1 < tabpagenr('$')
let s .= ' |'
endif
endfor
return s
endfu
set tabline=%!MyTabLine()
答案 1 :(得分:2)
如果您使用gvim
:
set guitablabel=(%N)\ %t\ %M
输入:help tabline
和:help guitablabel
以阅读更多内容。
文档中有function MyTabLine()
。