为什么我的tabpagenr总是返回1

时间:2013-09-02 19:14:44

标签: vim

我在.vimrc中有这个循环,将标题标题显示为“1:File1.txt”或“2:File2.tx”等,但tabpagenr('$')和tabpagenr()总是返回1无论我打开多少个标签。我做错了什么?

for t in range(tabpagenr('$'))
    if (t + 1) == tabpagenr()
       let &titlestring = t + 1 . ': '
    endif
endfor

let &titlestring .= expand("%:M")
    if &term == "screen" || &term == "xterm"
        set title
endif

2 个答案:

答案 0 :(得分:0)

您的示例代码中似乎缺少一些内容:您希望如何仅使用这几行更改标签标签?

无论如何,如果没有参数,tabpagenr()会返回当前标签的编号。由于在循环期间始终位于同一选项卡中,因此该函数始终返回相同的数字。

:help setting-tabline有一个例子,你读过吗?

答案 1 :(得分:0)

您没有告诉我们您的代码执行了哪些事件。如果您明确地将其放在~/.vimrc中,则只会在Vim启动期间执行一次。您需要使用:autocmd更新'titlestring',至少在每个标签页更改(即TabEnter事件),或者更好地使用选项中的表达式来连续评估它:

:set titlestring=%{tabpagenr()}