0

タブのタイトルを「1: File1.txt」または「2: File2.tx」などとして表示するために、.vimrc にこのループがありますが、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
4

2 に答える 2

0

サンプル コードにはいくつかのビットが欠けているようです。わずか数行でタブ ラベルを変更するにはどうすればよいでしょうか?

とにかく、引数なしで、現在のタブtabpagenr()の番号を返します。ループ中は常に同じタブにいるため、その関数は常に同じ数値を返します。

:help setting-tabline例があります、あなたはそれを読みましたか?

于 2013-09-02T19:43:48.447 に答える
0

コードが実行されるイベントを教えてくれませんでした。これを単純に に入れると、 Vim の起動時に1 回~/.vimrcだけ実行されます。を使用して、少なくともすべてのタブ ページの変更 (つまりイベント)を更新するか、オプションで式を使用して継続的に評価する必要があります。:autocmd'titlestring'TabEnter

:set titlestring=%{tabpagenr()}
于 2013-09-03T14:41:07.703 に答える