我在.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
答案 0 :(得分:0)
您的示例代码中似乎缺少一些内容:您希望如何仅使用这几行更改标签标签?
无论如何,如果没有参数,tabpagenr()
会返回当前标签的编号。由于在循环期间始终位于同一选项卡中,因此该函数始终返回相同的数字。
:help setting-tabline
有一个例子,你读过吗?
答案 1 :(得分:0)
您没有告诉我们您的代码执行了哪些事件。如果您明确地将其放在~/.vimrc
中,则只会在Vim启动期间执行一次。您需要使用:autocmd
更新'titlestring'
,至少在每个标签页更改(即TabEnter
事件),或者更好地使用选项中的表达式来连续评估它:
:set titlestring=%{tabpagenr()}